Рет қаралды 11
Para obtener la suma del mismo rango de todas las hojas. He ideado una fórmula mediante una combinación de Google Spreadsheet Functions List. En este ejemplo el nombre de las hojas tienen el patrón de «Enero», «Febrero» hasta «Diciembre».
Propuesta:
=LET(setRange;"A2:B10";
SUM(MAP(SEQUENCE(12);LAMBDA(getNumber;
TRANSPOSE(FLATTEN(
IFERROR(INDIRECT(CONCATENATE(PROPER(TEXT(DATE(2024;getNumber;1);"mmmm"));"!";setRange));0)
))))))
Propuesta detalle:
La función LET() asigna nombres a los valores para una mayor facilidad a su modificación.
➩ Asignación «setRange» establecemos el rango a sumar. Debe estar en formato texto por lo cual está entre comillas dobles.
➩ Función SUM() obtiene la suma de la matriz creada por MAP().
➩ Función SEQUENCE() crea una matriz en horizontal de número consecutivos desde el uno hasta el doce. Este equivale a doce hojas.
Función MAP() obtiene la matriz secuencial de SEQUENCE() y con la función auxiliar LAMBDA() asignamos el nombre «getNumber» para poder trabajar con los valores numéricos.
➩ Función INDIRECT() obtenemos los valores de cada hoja. Concatenado con CONCATENATE() el nombre de la hoja:
➩ Función DATE(), generamos una fecha de todos los meses del año.
➩ Función TEXT() convertimos el patrón a nombre mediante un token «mmmm».
➩ ➭ Función PROPER() convertimos la primera letra en mayúscula.
signo de admiración cerrado y rango.
➩ ➭ Función IFERROR() sustituye el error en caso de no existir la hoja por el valor cero.
➩ ➭ Función FLATTEN() modifica la matriz en una única columna y a su vez la función TRANSPOSE() en una única fila. El motivo en este caso la función MAP() solo admite una fila si el rango es de varias filas y columnas.
Hoja de cálculo de Google:
docs.google.co...
Web:
sites.google.c...
Referencias:
LET(): Esta función asigna un nombre con los resultados de value_expression y devuelve el resultado de formula_expression:
support.google...
SUM(): Devuelve la suma de una serie de números y/o celdas:
support.google...
MAP(): Esta función asigna cada valor de las matrices dadas a un nuevo valor mediante la aplicación de una función LAMBDA a cada valor:
support.google...
SEQUENCE(): La función devuelve una matriz de números secuenciales, como 1, 2, 3, 4:
support.google...
LAMBDA(): Puede crear y devolver una función personalizada con un conjunto de nombres y una expresión_fórmula que los use. Para calcular la expresión_fórmula, puede llamar a la función devuelta con tantos valores como lo indique el nombre:
support.google...
TRANSPOSE(): Transpone las filas y las columnas de una matriz o intervalo de celdas:
support.google...
FLATTEN(): Aplana todos los valores de uno o más rangos en una sola columna:
support.google...
IFERROR():Ofrece el primer argumento si el valor no es un error. De lo contrario, ofrece el segundo argumento si existe, o un elemento en blanco si no existe:
support.google...
INDIRECT(): Devuelve una referencia de celda especificada por una cadena:
support.google...
CONCATENATE(): Agrega cadenas entre sí:
support.google...
PROPER(): Pone en mayúscula cada palabra en una cadena especificada:
support.google...
TEXT(): Convierte un número en texto según un formato específico:
support.google...
DATE(): Convierte un año, mes y día en una fecha:
support.google...