Scripting con múltiples tablas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Soy relativamente nuevo en JSL (y en los scripts en general) y tengo problemas para encontrar una forma de manipular varias tablas.
Lo que me gustaría hacer para cada fila de una tabla es convertir los datos de dos columnas en dos variables globales, ajustar los datos coincidentes en una segunda tabla, luego pasar a la siguiente fila de la primera tabla y repetir.
ES DECIR:
Una tabla tiene un número total de ejecuciones para cada semana laboral, una fila por semana. Mi segunda tabla tiene muchas filas para cada semana laboral, pero me gustaría que en cada fila se coloquen las ejecuciones totales apropiadas para esa semana en la columna correspondiente.
En la guía de secuencias de comandos, llamar a la "Tabla de datos actual (tabla deseada)" aparece como cómo mover sus referencias de una tabla a otra, pero parece que no puedo hacerlo funcionar.
Estoy tratando de hacer que algo como lo siguiente funcione (los programas solo están ahí para solucionar problemas):
Tabla de datos actual("Porcentaje de errores");
Por cada fila(
semana global= :Semana;
globalTotal =: N filas;
Mostrar (semana global);
Mostrar(totalglobal);
Tabla de datos actual ("Ejecutar tabla de resumen");
Para cada fila (si (semana == semana global,
Se ejecuta esa semana = globalTotal))
)
¿Es posible lo que estoy intentando hacer? Incluso si termino encontrando una forma diferente de resolver esta situación particular, tengo curiosidad sobre el proceso general de pasar entre dos tablas como esta.
Scripting con múltiples tablasEl segundo argumento es opcional y representa "por variable", es decir, devuelve recuentos separados para cada nivel de la columna por.
En el menú de ayuda/funciones JSL está documentado (estos índices de sintaxis son muy útiles, a veces más completos que los libros o las páginas de ayuda y proporcionan buenos ejemplos).
Scripting con múltiples tablasFunciona, gracias de nuevo.
Por curiosidad, cuando busco el número de columna, dice que solo necesita un argumento y que proporciona el número de filas "no faltantes". Obviamente, le damos algún tipo de comparación entre dos fuerzas, pero ¿qué está haciendo exactamente?
Scripting con múltiples tablasA Col Number no le gustan las columnas con formato de caracteres, pero prueba este truco:
Número de columna ( Hexadecimal a número ( Carbón a maleficio ( :Columna ) ) , : Columna )
Scripting con múltiples tablasOh, eso es maravilloso, aún no había descubierto las fórmulas estadísticas de las columnas; solo he hecho fórmulas directas dentro de la misma fila.
Jugando un poco con eso, funciona muy bien para columnas numéricas, ¿hay alguna manera de hacer lo mismo con columnas de caracteres?
(Y sí, ya compré un libro, pero tardará un poco en llegar desde Amazon).
Scripting con múltiples tablasEn tal caso, no necesita un guión. Una fórmula de columna sería suficiente.
Pruebe esta fórmula en RowsPerWeek:
Número de columna( :Semana, :Semana )
Scripting con múltiples tablasMuchas gracias por la rápida respuesta.
La razón por la que evito Join es que me gustaría poder ejecutar esto repetidamente en la misma tabla, a medida que se agregan más datos con el tiempo.
Sin embargo, después de pensarlo, sospecho que lo estoy haciendo todo mucho más complicado de lo necesario.
Lo que realmente me gustaría es, en mi tabla original, contar cuántas filas hay para cada semana y luego poner el total de filas por semana en una columna.
Entonces básicamente quedaría así:
Semana, filas por semana
5, 3
5, 3
5, 3
6, 1
7, 2
7, 2
Este sería un script que ejecutaría cada vez que agregara datos a la hoja, y luego automáticamente sumaría mis filas por semana y actualizaría esa columna. Llegué allí a través de una tabla de resumen y luego volví a colocar los datos en la tabla original, pero tiene que haber una manera más fácil.
Scripting con múltiples tablasEs más fácil si apunta diferentes variables a las dos tablas.
pf_dt = tabla de datos ("Porcentaje de errores");
rst_dt = tabla de datos ("Ejecutar tabla de resumen");
Para utilizar estas variables:
para (i = 1, i <= nrows(pf_dt), i++,
una_semana = columna(pf_dt, "Semana") ;
one_total = columna(pf_dt, "N filas") ;
para (k = 1, k <= nrows(rst_dt), k++,
si (columna(rst_dt, "Semana")== una_semana,
column(rst_dt, "Se ejecuta esa semana")= uno_total;
);
);
);
Sin embargo, sería mejor utilizar un comando JOIN para unir las dos tablas.Utilice el comando Tablas > Unir para crear una nueva tabla y luego haga clic en el triángulo rojo para ver los comandos JSL que se utilizaron.