Re: ¿Cómo calcular valores relativos basados en una posición de un valor base?Value1_rel podría ser una columna de fórmula.
No estoy seguro de cuál sería la fórmula basada en sus datos de ejemplo.
Por lo general, esperaría relativo a significar Valor1 - Param1 , o Valor1 - 0 , pero ninguno coincide con el ejemplo.
¿Cómo calcular valores relativos basados en una posición de un valor base?Hola todos,
Necesito calcular la participación porcentual de los valores de la columna. Valor1 basado en la posición del valor seleccionado de la columna Valor1 . Como ejemplo, si quiero hacer eso en función del segundo valor en la columna Valor1 (posición 2, o valor 2), la columna resultante Value1_rel con valores relativos debería verse así:

Además, puede haber más datos que se deben agrupar por artículo y luego para cada artículo se calcula el porcentaje de participación (tal vez el valor normalizado o relativo es un término un poco confuso) para todos los demás valores. ¿Cómo puedo hacer eso? Si la explicación no es lo suficientemente buena, por favor perdone y no dude en preguntar.
Gracias y saludos
Tabla de datosScriptingRe: ¿Cómo calcular valores relativos basados en una posición de un valor base?Gracias por su comentario. Sí, había cero en la tabla en la versión anterior de la publicación, pero pensé que podría ser un poco confuso, así que pensé que tal vez sería más sencillo preguntar sobre el cálculo de los valores deseados tomando el valor de la segunda fila de cada grupo de elementos. . Y sí, el "cero" de la columna Param1 era solo para determinar el número de fila.Re: ¿Cómo calcular valores relativos basados en una posición de un valor base?Hola,
Puede usar esta fórmula ciertamente compleja (tal vez alguien presente una más fácil) en una nueva columna:
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
Col Cumulative Sum( 1, :Group ) == 2 & :Group == Expr( :Group[Row()] )
)] / :Val
)
)
Probablemente valga la pena desempacar esto al menos un poco.
La construcción Eval (Eval Expr ()) se utiliza para forzar la evaluación de la expresión Expr (: Group [Row ()]). Sin esto, se devolverán varios valores en cada fila ... uno para cada grupo. Pruébelo eliminando el contenedor Eval (Eval Expr ()) y el contenedor Expr () para ver a qué me refiero.
Para determinar el valor que usaremos en la proporción, necesitamos tomar la segunda fila dentro del grupo actual. Para encontrar esta fila, debemos hacer coincidir en el grupo (la segunda parte de la cláusula get filas donde) y también debe coincidir como el segundo valor dentro del grupo. Una forma fácil de hacer esto es mirar la suma acumulada de una columna de 1, agrupada por: Grupo. Cuando esta columna == 2, tenemos el segundo valor de algún grupo. Esto sucede en varias filas, pero la segunda parte de la cláusula restringe el resultado al grupo que coincide con el grupo de la fila actual. De esta manera, la tabla ni siquiera necesita ser ordenada por grupo o valor.
Cambiar el 2 en la suma acumulada de equivalencia a k, le permite usar el k-ésimo valor en el grupo en lugar del segundo.
Salud,
Brady
