Comparar elemento actual con el anterior: limitaciones de SCAN y solución elegante

Un miembro de la comunidad intenta usar SCAN con una "matriz coja" (dos columnas apiladas horizontalmente) para comparar cada elemento con el anterior y contar los cambios. Pero SCAN siempre compara el mismo elemento consigo mismo, no con el anterior.

Nacho explica por qué falla: SCAN solo procesa la primera columna de su array de entrada. Aunque le pases una matriz de dos columnas con APILARH, SCAN ignora la segunda.

La fórmula original que no funcionaba:

``
=LET(
ra_1; A1:A11;
ra_2; A2:A12;
arr; APILARH(ra_1; ra_2);
result; SCAN(1; arr; LAMBDA(a; row;
UNIRCADENAS("-"; VERDADERO; INDICE(row; 0); INDICE(row; 1))
));
ELEGIRCOLS(result; 1)
)
`

Alternativa con MAP (Argentina): para trabajar con dos rangos en paralelo, MAP acepta múltiples arrays como entrada:

`
=MAP(A1:A11; A2:A12; LAMBDA(prev; curr; prev&"-"&curr))
`

La solución definitiva (John): el problema real no era concatenar, sino contar cambios entre elementos consecutivos. Para eso, no hace falta ni MAP ni LAMBDA:

`
=SCAN(1; A1:A11 <> A2:A12; SUMA)
`

A1:A11 <> A2:A12 genera un array booleano (VERDADERO donde hay cambio), y SCAN con SUMA` acumula el conteo. Elegante y sin una sola función LAMBDA.

Más contenido de Excel en InflueXcel