Cómo calcular diferencias porcentuales entre filas referenciadas a una celda en otra columnaHola a todos,
Tengo la siguiente tabla.Para cada tema, me gustaría calcular el porcentaje de diferencia de los valores d1, d2, d3 y d4 en la columna Valor en relación con el valor de la pantalla.La fórmula es ((pantalla d1)/pantalla)*100, y se repite para los valores d2 a d4 para el sujeto 1. Luego, cuando el número de sujeto cambia, se hace referencia al valor de pantalla para el sujeto 2 para el cálculo utilizando los d1 a d4 del sujeto 2. valores, etcEstoy seguro de que hay una manera de hacer esto, pero no he logrado identificar ninguna.
gracias de antemano
floyd zorro

Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sí, Pantalla Se puede modificar la posición de la fila. Pero si Pantalla Está obligado a tener siempre el valor máximo dentro de un tema, esta fórmula también funciona:
: Valor / coronel max ( : Valor , : Sujeto ) - 1
Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columnaSi interpreto correctamente su solicitud de expansión, ¿su tabla de datos ahora se vería así?

Usando el método que propuse originalmente, el script tendría un par de cambios menores:
Nombres predeterminados aquí ( 1 ) ;
dt = Tabla de datos actuales () ;
// Crea una tabla de datos con solo valores de pantalla
dt << seleccione donde ( : día == "pantalla" ) ;
pantalla dt = dt << subconjunto ( filas seleccionadas ( 1 ) , columnas seleccionadas ( 0 ) ) ;
pantalla dt << eliminar columnas ( "día" ) ;
pantalla dt : Valor << escoger un nombre ( "Valor de pantalla" ) ;
pantalla dt : Valor 2 << escoger un nombre ( "Valor de pantalla 2" ) ;
// Combinar los datos nuevamente
dt << Actualizar ( Con ( pantalla dt ) , Coincidir columnas ( : sujeto = : sujeto ) ) ;
Cerca ( pantalla dt , guardar ) ;
//Hacer el cálculo final
dt << Nueva columna ( "% de diferencia con respecto a la pantalla" , fórmula (( : Valor - : valor de pantalla ) / : Valor de pantalla ) , Formato ( "Por ciento" , 7 , 2 )) ;
dt << Nueva columna ( "% de diferencia con respecto a la pantalla 2" , fórmula (( : Valor 2 - : valor de pantalla 2 ) / : Valor de pantalla 2 ) , Formato ( "Por ciento" , 7 , 2 )) ;
Esto le daría una mesa final parecida a:

Existe una ventaja al utilizar la metodología propuesta por MS, ya que se puede lograr simplemente especificando una fórmula para la nueva columna.Sin embargo, se basa en determinar la posición de la fila de la pantalla, lo que puede no ser una suposición válida cuando se utiliza con datos reales.
Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columnaEM,
Muchas gracias.Le hice una pregunta a Jim y te plantearía la misma.
Si tengo dos (o más) columnas de valores que representan diferentes conjuntos de observación en la pantalla d1, d2, etc., ¿qué cambios tendría que hacer para calcular la diferencia para cada columna de valores?Gracias
floyd
Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columnaJim,
Muchas gracias esto es muy útil.Si tengo dos (o más) columnas de valores que representan diferentes conjuntos de observación en la pantalla d1, d2, etc., ¿qué cambios tendría que hacer para calcular la diferencia para cada columna de valores?Gracias
floyd
Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columnaAquí hay dos formas más de hacerlo. Ambos usan la función Col Min() para encontrar la primera fila para cada tema y, por lo tanto, depende de la clasificación actual (la solución de Jim tiene la ventaja de ser independiente de la clasificación).
dt = Tabla de datos actuales () ;
// Establecer valores estáticos
col1 = dt << Nueva columna ( "Valor de pantalla" , numérico ) ;
col2 = dt << Nueva columna ( "% de diferencia con respecto a la pantalla" , numérico , Formato ( por ciento , 1 )) ;
Por cada fila (
col1 [] = : Valor [ coronel min ( Fila () , : Sujeto )] ;
col2 [] = ( : Valor - col1 []) / col1 [] ;
) ;
// Fórmula de columna, todo en un solo paso.
dt << Nueva columna ( "% de diferencia con respecto a la pantalla" ,
Formato ( por ciento , 1 ) ,
fórmula (( : Valor - : Valor [ coronel min ( Fila () , : Sujeto )]) / : Valor [ coronel min ( Fila () , : Sujeto )])
) ;
Re: Cómo escribir % de diferencias entre filas referenciadas a una celda en otra columnaAquí hay un script simple que hace lo que quieres:
Nombres predeterminados aquí ( 1 ) ;
dt = Tabla de datos actuales () ;
// Crea una tabla de datos con solo valores de pantalla
dt << seleccione donde ( : día == "pantalla" ) ;
pantalla dt = dt << subconjunto ( filas seleccionadas ( 1 ) , columnas seleccionadas ( 0 ) ) ;
pantalla dt << eliminar columnas ( "día" ) ;
pantalla dt : Valor << escoger un nombre ( "Valor de pantalla" ) ;
// Combinar los datos nuevamente
dt << Actualizar ( Con ( pantalla dt ) , Coincidir columnas ( : sujeto = : sujeto ) ) ;
Cerca ( pantalla dt , guardar ) ;
//Hacer el cálculo final
dt << Nueva columna ( "% de diferencia con respecto a la pantalla" , fórmula ( ( : Valor - : valor de pantalla ) / : Valor de pantalla ) , Formato ( "Por ciento" , 7 , 2 ) ) ;