Hola,
Tengo datos similares a los adjuntos a continuación. Necesito crear una columna para cada una de las variables de servicio con la fórmula: Col Sum (Servicio 1, ID, Fecha de admisión). Tengo cerca de 100 variables de servicio diferentes, por lo que hacer esto manualmente está fuera de discusión. Solo cambiará el primer argumento que le paso a Col Sum y por variables (ID y fecha de Admisión) permanece igual para cada fórmula. ¿Hay alguna manera de usar el script JSL para crear columnas y pasar dinámicamente la variable a la función y asignar el nombre de la columna con la variable utilizada para diferenciar la fuente y la salida? Service1_1 será una de las columnas de salida.
Gracias de antemano.
| IDENTIFICACIÓN | Edad | Fecha de admisión | Fecha de alta | Fecha de orden | Servicio 1 | Servicio 2 | Servicio 3 | Servicio 1_1 |
| 12 | 25 | 13/2/2012 | 4/1/2012 | 3/1/2012 | 0 | 1 | 0 | 1 |
| 12 | 25 | 13/2/2012 | 4/1/2012 | 23/3/2012 | 1 | 1 | 1 | 1 |
| 13 | 17 | 27/8/2015 | 31/10/2015 | 09/03/2015 | 0 | 1 | 1 | 2 |
| 13 | 17 | 27/8/2015 | 31/10/2015 | 17/9/2015 | 1 | 1 | 0 | 2 |
| 13 | 17 | 27/8/2015 | 31/10/2015 | 28/10/2015 | 1 | 0 | 0 | 2 |
| 14 | 45 | 1/1/2016 | 13/2/2016 | 31/1/2016 | 0 | 0 | 1 | 1 |
| 14 | 45 | 1/1/2016 | 13/2/2016 | 8/2/2016 | 1 | 1 | 0 | 1 |
Aquí hay un script que creo que ayudará.
Names Default To Here( 1 );
dt = Current Data Table();
nc = N Cols( dt );
For( i = 6, i <= nc, i++,
Eval(
Substitute(
Expr(
dt << New Column( __newname__,
formula( Col Sum( __oldname__, :ID, :Admission date ) )
)
),
Expr( __newname__ ), Column( i ) << get name || "_1",
Expr( __oldname__ ), Parse( ":" || Char( Column( dt, i ) << get name ) )
)
)
);<BR /><BR />
Además, puede hacer esto de forma interactiva usando
Col==>Nuevas columnas
y especifique tantas columnas nuevas como necesite.Luego, ingrese la fórmula para la primera de las nuevas columnas.Finalmente, seleccione esa columna y todas las demás columnas nuevas y luego vaya a
Col==>Estandarizar atributos
Seleccionar
Propiedades de columna==>Fórmula
Haga clic en la casilla de verificación "Sustituir referencia de columna"
y luego haga clic en "Aceptar"
Copiará la fórmula de la primera columna nueva, a todas las demás columnas, sustituyendo la columna Servicio N