Formato condicional de celdas en una tabla de datos con operaciones If-then en celdas de columnas de conjuntos de datos múltiplesHola expertos,
Intentaré explicar lo mejor que pueda el problema que tengo.
1. Tengo 2 conjuntos de datos: uno que contiene los valores medianos del lote A en diferentes columnas y otro que contiene la desviación estándar de algunos parámetros.
Tabla de datos de mediana

Tabla de datos de desviación estándar:

2. Quiero comparar el valor de la fila del valor de la columna risk_lot (5) con [baseline(4) + 2*std dev datatable:Lot(2)] y [baseline(4) - 2*std dev datatable:Lot(2)]. Si se encuentra dentro de este rango, es decir, 0<5<8 para este ejemplo, entonces quiero colorear la celda risk_lot en verde y si se encuentra fuera de la ventana, en rojo.
3. Probé con el código a continuación, pero me arroja un error "No se puede convertir el argumento a número", lo que me hace pensar que de alguna manera mi sintaxis está mal.
4. También miré un par de ejemplos en el foro, pero no funciona.
5. Tengo jmp12.
Por favor ayuda. Gracias.
dt_summary<<SELECT where="">formula(column(3)+2*column(dt_std_subset,3)))|(column(i)Mass Customization</SELECT>
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosLa única forma en que he podido obtener una copia de una tabla de datos que tiene color en las celdas para moverlas a un diario es colocar primero la tabla de datos en una ventana y luego agregar la ventana temporal. con la tabla de datos en él, a donde sea necesario en el diario final.Vea el script de ejemplo a continuación

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
:age << color cells( "red", [2, 4, 6, 8] );
temp = New Window( "temp", <<JOURNAL></JOURNAL>
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosGracias Jim Esto está funcionando ahora. Sin embargo, ahora me he encontrado con otro problema. Quiero que esta tabla de datos codificada por colores sea parte de un informe/diario final junto con otros gráficos debajo de esta tabla. Algo como abajo. Cuando trato de usar el cuadro de la tabla de datos para agregar esta tabla al informe, la codificación de colores desaparece y no hay líneas de borde/cuadrícula. ¿Me pueden ayudar con el código para lograr el siguiente diseño?
[ Ventana de análisis final]
[Tabla de resumen codificada por colores con líneas de cuadrícula.]
(encabezado= columna 1)
[Diagrama de caja de la columna 1 en la tabla de resumen][Diagrama de cuantiles normales de la columna 1 en la tabla de resumen]
(encabezado= columna 2)
[Diagrama de caja de la columna 2 en la tabla de resumen][Diagrama de cuantiles normales de la columna 2 en la tabla de resumen]
..
.. etcétera.
Gracias
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosGracias Jim Me disculpo por no dejar muy clara mi pregunta al principio. Supongo que este es el error que estaba recibiendo cuando intentaba for-loop. Es por eso que pensé que podría haber una forma especial de señalar diferentes columnas de conjuntos de datos usando sus identificadores, pero no pensé en lo que sucederá hacia el final del ciclo.Probaré esto hoy y les avisaré si encuentro algún problema.
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosDebo admitir que estoy confundido, así que regresaré a su entrada original y comenzaré de nuevo.Aquí hay una conversión de su código de coloración de celda.Tiene 3 cambios.
- Cambié el nCol+1 a N Cols (dt_med_subset).Su código fallará con el cálculo original, porque cuando el valor de "i" llega a nCol+1, su código buscará una columna más allá del final de la tabla de datos y no podrá encontrarla.
- Agregué referencias absolutas a las tablas de datos std y med
- Cambié For Each Row a un bucle For() normal.El código se ejecutará más rápido y proporciona una referencia más precisa.
For( rowNum = 1, rowNum <= N Rows( dt_med_subset ), rowNum++,
For( i = 4, i < N Cols( dt_med_subset, i++,
If(
(Column( dt_med_subset, i )[rowNum] > Column( dt_med_subset, 3 )[rowNum] + 2
* Column( dt_std_subset, 3 )[rowNum]) | (Column( dt_med_subset, i )[rowNum]
< (Column( dt_med_subset, 3 )[rowNum] - 2 * Column( dt_std_subset, 3 )[rowNum]))
,
Column( dt_med_subset, i ) << color cells( "red", rowNum ),
Column( i ) << color cells( "green", rowNum )
)
)
)
);Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosGracias por el código. Veo que su código hace referencia a las columnas de línea de base, lote y lote de riesgo por sus nombres. Traté de usar nCOL porque el conjunto de datos original que tengo tiene 40 columnas como lote de riesgo y quiero evitar hacer referencia a cada una de ellas por su nombre, ya que tienen nombres muy largos.
¿Cómo puedo usar un bucle for en todas esas columnas y codificar con color las 40 celdas de columna completas con la misma lógica que en las últimas 3 líneas de su código? Supongo que lo que estoy preguntando es cómo codificar con color las 40 columnas completas sin usar nombres de columna explícitos y usar identificadores/referencias a esas columnas en su lugar. Por favor, hágamelo saber si hay un trabajo en torno a hacer eso?
Gracias
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosAquí está mi versión de su código.Separo los datos Median y Std Dev, pero luego los vuelvo a unir usando Update.
Names default to here(1);
dt_summary = New Table( "summary",
Add Rows( 4 ),
Set Header Height( 50 ),
New Column( "Analysis Columns",
Character,
"Nominal",
Set Values( {"Test-1", "Test-1", "Test-2", "Test-2"} )
),
New Column( "Statistics",
Character,
"Nominal",
Set Values( {"Median", "Std Dev", "Median", "Std Dev"} )
),
New Column( "baseline",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] )
),
New Column( "risk_lot",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 7, 19, 9] )
)
);
dt_summary << select where( :Statistics == "Std Dev" );
dt_std_subset = dt_summary << subset(
output table( "Std summary" ),
selected rows( 1 ),
selected columns( 0 )
);
dt_summary<<INVERT row="" selection=""></INVERT>
Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datosHola Jim,
Gracias por ayudarme con esto. Así es como se ve la tabla de resumen. Intenté su solución anterior en una de las publicaciones, pero no pude hacer que funcionara, así que pensé en subdividir esta tabla en std dev y mediana table. Pensé que podría ser más fácil modificar las celdas en la tabla de subconjuntos medianos al hacer referencia a los valores de columna de la tabla de desarrollo estándar y hacer algunos cálculos simples con ella, pero me quedé atascado 
Si hay una manera más simple, por favor hágamelo saber. El objetivo final es simplemente tener una tabla mediana (subconjunto de la tabla de resumen) con los valores de celda codificados por color según la lógica si-entonces.
Gracias de nuevo.

Re: Formato condicional de celdas en un datable con Si-entonces operando en múltiples celdas de columna de conjuntos de datos- ¿Podría mostrar cómo se ve la tabla de datos dt_summary?El código que muestra que está creando las tablas de datos Median y STD no parece estar completo en su capacidad para crear las 2 tablas como muestra.
- ¿Están completas las tablas de datos Mediana y STD en el número de columnas que tendrán?
- ¿Hay alguna razón por la que no está simplemente uniendo la tabla de datos Median y STD en una sola tabla, haciendo que la coloración de celda condicional sea un proceso más sencillo?