Es necesario ser creativo y continuar la secuencia hasta el final de la tabla.Hola,
No estoy seguro de si existe una gran solución para mi problema específico, pero me encantaría escuchar las opiniones de los expertos...
En mi uso de JMP 17, a menudo agrego datos nuevos a un archivo existente. Cada fila tendrá su propio "número de lote" exclusivo asignado. Cuando obtengo un nuevo conjunto de datos, habrá nuevos números de lote que debo agregar a mi archivo existente. Hasta la fecha, la forma más fácil de hacer esto sería simplemente copiar los nuevos números de lote al archivo maestro y ejecutar una función de actualización de tabla para incorporar todos los datos necesarios, pero estoy buscando una opción para hacer esto de una manera más automática para reducir el tiempo de "procesamiento de datos".
Básicamente, la conclusión es: ¿estoy obligado a utilizar uno de los métodos siguientes o hay una forma más creativa de lograr esta tarea a través de JSL?
Lo que he probado:
- Agregue filas y luego resalte los últimos números de lote y seleccione Rellenar -> Continuar secuencia hasta el final de la tabla
- Se puede agregar filas a través de JSL, pero me costó encontrar una forma autónoma de llenar hasta el final de la tabla...
- Copie y pegue los números de lote de la importación de datos en el maestro de datos, luego ejecute una función Actualizar tabla para extraer el resto de los datos.
- Un método probado y verdadero que funciona bien siempre, solo necesita ser un poco más automatizado que esto.
- Concatenar tablas de datos y luego eliminar los duplicados
- Esto funcionó muy bien, pero a veces los datos en el último puñado de filas están incompletos en el maestro, pero se completarían con la actualización de datos. Al usar este método se eliminan los duplicados más antiguos cuando sería más ideal mantener los duplicados más nuevos. Este método podría funcionar muy bien si pudiera conservar los duplicados más nuevos.
- Utilice una fórmula Row() en una columna adyacente o para la propia columna de número de lote.
- Casi nunca comenzamos con el lote n.° 1, pero esto se soluciona fácilmente agregando Fila() + (un número). Es decir, si el primer lote es 6543, entonces mi fórmula sería [Fila() + 6542] y se calcularía el recuento correcto.
- Esto también funcionaría bien, pero a veces se omiten los números de lote. Esto provocaría que la columna calculada no coincida con la columna de número de lote a menos que desee tener espacios en blanco en los datos en ocasiones.
Automatización y scriptingRe: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaSi puede definir las reglas y las excepciones, entonces se puede escribir JSL para resolver su problema. Me resulta difícil seguir todo lo que ha dicho, pero parece que si puede definir dónde obtener el primer número de lote, qué hacer en caso de irregularidades y cómo detectar y manejar el caso en el que hay números de lote omitidos, todo eso se puede manejar en JSL.
Re: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaEn realidad, es un ejercicio simple... digamos que tengo un conjunto de datos "maestro" con los lotes 19257 a 19640. Recibí un nuevo conjunto de datos con los lotes 19620 a 19665 que ahora necesito agregar al conjunto de datos "maestro" para que estén todos en un solo archivo. La práctica normal es copiar estos nuevos números de lote al conjunto maestro y luego ejecutar Tablas -> Actualizar, hacer coincidir las dos tablas Lote = Lote y luego la actualización incorpora todos los datos nuevos.
Mi mayor problema es utilizar JSL para transferir los números de lote de los datos nuevos a los datos maestros o hacer que se llenen hasta el final de la tabla de manera autónoma. Agregar filas, ejecutar la actualización de la tabla y eliminar las filas no utilizadas es la parte fácil.
Re: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaPuedes utilizar
Tablas=>Unir
que creará una nueva tabla con todos los datos de la tabla original junto con las nuevas filas de la nueva tabla ingresada. Luego, puede simplemente eliminar la tabla original y cambiar el nombre de la nueva tabla unida.
Re: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaEsto funciona bien, pero la nueva tabla pierde los estados de fila que se pueden aplicar en la primera tabla de datos. Sé que puedo usar una columna de estado de fila, pero necesito que todas las acciones se registren en el registro y, por alguna razón, la opción "copiar desde estados de fila" no se registra en el registro. La idea es que todo esto se registre en el registro para que mis colegas puedan copiar desde allí para crear este script de actualización de datos sin necesidad de aprender la codificación detrás de él.
La concatenación podría ser la opción que estoy buscando, pero necesito una forma de eliminar duplicados y conservar el SEGUNDO duplicado. La mayor parte de la información en docenas de columnas será idéntica, pero el primer duplicado tendrá algunos datos faltantes hacia el final de la lista de columnas. Por lo tanto, el segundo duplicado proporcionará un conjunto de datos más completo. Por lo tanto:
Lote #
1
2
3 (duplicar, eliminar)
4 (duplicar, eliminar)
5 (duplicar, eliminar)
[a continuación se mostrarían los datos concatenados con algunos lotes duplicados]
3 (duplicar, conservar)
4 (duplicar, conservar)
5 (duplicar, conservar)
6
7
8
Re: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaNo puedo imaginar lo que estás describiendo cuando dices: " La idea es que todo esto quede registrado en el registro para que mis compañeros puedan copiar desde allí para crear este script de actualización de datos sin necesidad de aprender la codificación detrás de él". ¿Hay alguna manera en que puedas repasar exactamente lo que se proporciona en el registro que los usuarios están copiando y usando?
En cuanto a los lotes duplicados, le sugiero que busque en el índice de secuencias de comandos la opción Seleccionar filas duplicadas. Encontrará todas las filas que se han visto anteriormente. A continuación, puede recorrer los duplicados encontrados y, a partir de ahí, buscar la fila anterior que se ha duplicado y, a continuación, eliminarla.
Re: Es necesario ser creativo para continuar la secuencia hasta el final de la tablaCuando hago esa afirmación, me refiero a la serie de pasos necesarios para incorporar nuevos datos a un conjunto de datos existente, entre ellos:
- Abra e importe un nuevo conjunto de datos de Excel que se guardó previamente con un nombre de archivo específico en una ubicación específica
- Agregue esos datos al conjunto de datos existente para hacerlo más completo.
- "Limpiar" los datos (es decir, eliminar columnas que el nuevo conjunto de datos agrega pero que no son necesarias, reformatear otras columnas, cualquier otra cosa que pueda ser necesaria)
Todas estas acciones se agregan al registro, y el JSL que genera el registro se puede copiar en un nuevo script en la tabla de datos. No muchos de mis colegas son expertos en JSL, por lo que necesitamos esta simplicidad para permitir que todo el equipo haga que este proyecto sea repetible para todos. Si necesito agregar cualquier código JSL a un script manualmente que el registro no captura, hace que el producto final sea mucho más difícil de implementar para el equipo.
¿Cómo se podría abordar la parte de su sugerencia de "recorrer los duplicados encontrados y, a partir de ahí, encontrar la fila anterior que se ha duplicado y luego eliminar esa fila"? Creo que esa podría ser la última pieza que falta para unir todo esto.