Columna de fórmula omite la última filaOigan todos,
un cliente me preguntó sobre un problema con la evaluación de la fórmula y me envió estas capturas de pantalla.
(Crearon esta fórmula para una columna de fórmula, ya que quieren que la tabla crezca continuamente).

El problema que ven con esto es que la celda de la columna de fórmula de la última fila permanece vacía.

¿Hay alguna razón obvia para esto? y alguna forma de solucionarlo?
(Se supone que la fórmula encuentra la referencia relacionada en la columna 1 ("Spalte 1"), luego divide el valor de la columna 2 ("Spalte") de la fila actual por el valor respectivo de la fila con la coincidencia. La columna 3 ("Spalte 3") es la columna de fórmula.
Gracias y un saludo,
florián
Re: La columna de fórmula omite la última fila¿El If() anidado devuelve el tercer argumento porque el primer argumento se evalúa como falso? Devuelve la cadena "sin coincidencia", pero es una columna numérica, por lo que falta el resultado (".").
Además, la fórmula se evalúa automáticamente por filas. La expresión de fórmula itera aún más sobre las filas y para cada fila, itera sobre todas las filas. ¿Es válido este cálculo?
Re: La columna de fórmula omite la última filaEstoy de acuerdo con Marcos. La fórmula está iterando mucho en cada fila. ¿Qué es exactamente lo que están tratando de calcular?
Además, están asignando un valor, quizás repetidamente, a Spalte 3[i] en la condición intermedia If(). Esto es poco convencional y difícil de seguir y quizás no sea lo que quieren.
Re: La columna de fórmula omite la última filaHola Florián,
Sugeriría que el cliente use algo como la fórmula a continuación en lugar de un bucle anidado. Esta fórmula divide por el valor de la fila, que contiene "0%", que tiene la misma referencia que la fila actual.
dt = :Spalte 1 << get data table;
Eval(
Eval Expr(
:Spalte 2 / :Spalte 2[ dt << get rows where(
Contains( :Spalte 1, "0%" ) & Contains(
:Spalte 1,
Expr(
Word( 3, dt:Spalte 1[Row()], "-" )
)
)
) ]
)
);
Si, como parece ser el caso, el cliente tiene datos "perfectos", en el sentido de que las filas aparecen en un orden predecible y no faltan filas, entonces esta fórmula mucho más sencilla funcionará igual de bien:
:Spalte 2 / :Spalte 2[ Mod ( Row ( ) - 1, 3 ) + 1 ]
Estas son las columnas :spalte 3 y :spalte 3a en la siguiente captura de pantalla. Modifiqué los valores de la columna para que las proporciones sean triviales de verificar.

Salud,
Brady