Obtener los nombres de los meses del año. Mediante una fórmula formada por combinaciones de Google Spreadsheet Functions.
Propuesta:
=LET(isHorizontal;TRUE;
getRows;IF(isHorizontal;1;12);
getColumns;IF(isHorizontal;12;1);
MAP(SEQUENCE(getRows;getColumns;1;1);LAMBDA(getNumberMonth;
PROPER(TEXT(DATE(2024;getNumberMonth;1);"mmmm"))
)))
Propuesta detalle:
La función LET() asigna nombres descriptivos para clarificar su cometido. Su utilización parte de guardar las variables para no tener que volver a repetir funciones, en caso de modificar la fórmula meses después y es práctico comprobar la estructura de la fórmula.
Asignación «isHorizontal» obtenemos un valor booleano TRUE() o FALSE(). para indicar como mostrar los resultados horizontal o vertical.
Asignación «getRows» indicamos el número de líneas según el condicional IF() si es verdadero una línea y falso doce líneas.
Asignación «getColumns» indicamos el número de columnas según el condicional IF() si es verdadero doce columnas y si es falso una columna.
La función MAP() crea una matriz mediante SEQUENCE() de doce columnas o doce líneas y a través de LAMBDA() asignamos una variable «getNumberMonth» el cual obtiene los valores numéricos consecutivos del uno al doce.DATE() obtenemos la fecha del día primero de cada mes del año. TEXT() convierte la fecha en un nombre del mes mediante el patrón de cuatro tokens referidos al mes «mmmm». Finalmente la función PROPER() convierte en mayúscula la primera letra de la palabra.
Resultados:
Demo:
Hoja de cálculo de Google:
Obtener los nombres de los días de la semana. Mediante una fórmula formada por combinaciones de Google Spreadsheet Functions.
Propuesta:
=LET(isHorizontal;TRUE;
getRows;IF(isHorizontal;1;7);
getColumns;IF(isHorizontal;7;1);
MAP(SEQUENCE(getRows;getColumns;1;1);LAMBDA(getNumberDayWeek;
PROPER(TEXT(DATE(2024;7;getNumberDayWeek);"dddd"))
)))
Propuesta detalle:
La función LET() asigna nombres descriptivos para clarificar su cometido. Su utilización parte de guardar las variables para no tener que volver a repetir funciones, en caso de modificar la fórmula meses después y es práctico comprobar la estructura de la fórmula.
Asignación «isHorizontal» obtenemos un valor booleano TRUE() o FALSE(). para indicar como mostrar los resultados horizontal o vertical.
Asignación «getRows» indicamos el número de líneas según el condicional IF() si es verdadero una línea y falso siete líneas.
Asignación «getColumns» indicamos el número de columnas según el condicional IF() si es verdadero siete columnas y si es falso una columna.
La función MAP() crea una matriz mediante SEQUENCE() de siete columnas o siete líneas y a través de LAMBDA() asignamos una variable «getNumberDayWeek» el cual obtiene los valores numéricos consecutivos del uno al siete.DATE() obtenemos la fecha del día uno al siete de julio 2024 que coincide el uno con el lunes. TEXT() convierte la fecha en un nombre del día de la semana mediante el patrón de cuatro tokens referidos al día «dddd». Finalmente la función PROPER() convierte en mayúscula la primera letra de la palabra.
Resultados:
Demo:
Hoja de cálculo de Google:
Para repetir «n» veces el mismo valor en una celda o celdas y opción horizontal o vertical. Adjunto propuesta de una fórmula ideada a partir de combinaciones de Google Spreadsheet Functions. Cuya funciones de repetición son: REPT(), WRAPCOLS() y WRAPROWS()
Propuesta:
=LET(setValue;"⭐";
setNumberRepeat;5;
isHorizontal;FALSE;
isArray;FALSE;
IF(isArray;
IF(isHorizontal;
WRAPROWS(setValue;setNumberRepeat;setValue);
WRAPCOLS(setValue;setNumberRepeat;setValue));
IF(isHorizontal;
REPT(setValue;setNumberRepeat);
REPT(CONCAT(setValue;CHAR(10));setNumberRepeat-1) & setValue)))
Propuesta detalle:
La función LET() asigna nombres descriptivos para clarificar su cometido. Su utilización parte de guardar las variables para no tener que volver a repetir funciones o valores. En caso de modificar la fórmula meses después es práctico comprobar la estructura de la fórmula.
Asignación «setValue» Establecemos el valor a repetir. Si es texto incluir entre el valor comillas dobles.
Asignación «setNumberRepeat» Establecemos el número de repeticiones a mostrar.
Asignación «isHorizontal» establecemos para mostrar valores en horizontal TRUE() y en caso de establecer FALSE() se mostrará en vertical.
Asignación «isArray» indicar si se repiten en la misma celda FALSE() o por el contrario para crear una matriz TRUE().
La función IF() en forma anidada para establecer las condiciones. WRAPCOLS() matriz vertical. WRAPROWS() matriz horizontal. REPT() para mostrar en una celda horizontal. REPT() y CHAR() con el código Unicode «10» para establecer nueva línea concatenado con CONCAT() y una resta para eliminar la última nueva línea.
Resultados:
Demo:
Hoja de cálculo de Google:
Referencias:
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 «Sheet1», «Sheet2» hasta «Sheet100».
Propuesta:
=LET(setRange;"A1:A10";
setNameSheet;"Sheet";
SUM(MAP(SEQUENCE(100);LAMBDA(getNumber;
TRANSPOSE(FLATTEN(
IFERROR(INDIRECT(CONCATENATE(setNameSheet;getNumber;"!";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.
Asignación «setNameSheet» establecemos el nombre de la hoja. el cual incluirá un índice en el nombre de la hoja a crear para obtener un patrón Sheet1, Sheet2, Sheet... no tiene por qué ser consecutivo.
Función SUM() obtiene la suma de la matriz creada por LAMBDA().
Función SEQUENCE() crea una matriz en horizontal de número consecutivos desde el uno hasta el cien. Este equivale a cien 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, índice secuencial, 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.
Resultados:
Demo:
Hoja de cálculo de Google:
Referencias:
SEQUENCE(): La función devuelve una matriz de números secuenciales, como 1, 2, 3, 4.
TRANSPOSE(): Transpone las filas y las columnas de una matriz o intervalo de celdas.
FLATTEN(): Aplana todos los valores de uno o más rangos en una sola columna.
INDIRECT(): Devuelve una referencia de celda especificada por una cadena.
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:
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.
Resultados:
Demo:
Hoja de cálculo de Google:
Referencias:
SEQUENCE(): La función devuelve una matriz de números secuenciales, como 1, 2, 3, 4.
TRANSPOSE(): Transpone las filas y las columnas de una matriz o intervalo de celdas.
FLATTEN(): Aplana todos los valores de uno o más rangos en una sola columna.
INDIRECT(): Devuelve una referencia de celda especificada por una cadena.
PROPER(): Pone en mayúscula cada palabra en una cadena especificada.
TEXT(): Convierte un número en texto según un formato específico.
📎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 «Lunes», «Martes» hasta «Domingo».
💡 Propuesta:
=LET(setRange;"A2";
SUM(MAP(SEQUENCE(7);LAMBDA(getNumber;
TRANSPOSE(FLATTEN(
IFERROR(INDIRECT(CONCATENATE(PROPER(TEXT(getNumber;"dddd"));"!";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 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.
📷 Resultados:
📺 Demo:
💾 Hoja de cálculo de Google:
📚 Referencias:
SEQUENCE(): La función devuelve una matriz de números secuenciales, como 1, 2, 3, 4.
TRANSPOSE(): Transpone las filas y columnas de una matriz o rango de celdas.
FLATTEN(): Aplana todos los valores de uno o más rangos en una sola columna.
INDIRECT(): Devuelve una referencia de celda especificada por una cadena.
PROPER(): Pone en mayúscula cada palabra en una cadena especificada.
TEXT(): Convierte un número en texto según un formato específico.
📎 Para convertir números a letras en español. Adjunto una fórmula formada por combinaciones de Google Spreadsheet Functions. Las funciones BAHTTEXT() y GOOGLETRANSLATE() realizan dicho cometido.
💡 Propuesta:
REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(
LOWER(GOOGLETRANSLATE(BAHTTEXT(A2);"th";"es"));
"solo|sólo|son|exactamente";);"baht";"euros");
"satang";"céntimos")
📝 Propuesta detalle:
Función BAHTTEXT(), convierte el número en tailandés. Con la función GOOGLETRANSLATE() lo traducimos a español. Función LOWER() para transformarlo en minúscula para facilitar los criterios en REGEXREPLACE(), cuya función es eliminar palabras no deseadas en la traducción. También reemplaza la palabra «satang» por «céntimos» para los decimales y «baht» por «euros»
📷 Resultados:
📺 Demo:
💾 Hoja de cálculo de Google:
📎 Para obtener la referencia de celda o celdas. En la búsqueda de un valor. He formado una fórmula mediante combinaciones de Google Spreadsheet Functions List. La función principal es CELL().
💡 Propuesta:
=LET(setValueSearch; H2 ;
setRange; A:F ;
setFirstorLastorAll; 3 ;
setSearchVertical; TRUE ;
getResults;MAP(setRange;LAMBDA(getRange;IF(getRange = setValueSearch;REGEXREPLACE(CELL("address";getRange);"[$]+";);)));
getResultsVertical;TOCOL(getResults;1;setSearchVertical);
CHOOSE(setFirstorLastorAll;
INDEX(getResultsVertical;1);
INDEX(getResultsVertical;ROWS(getResultsVertical));
getResultsVertical))
📝 Propuesta detalle:
La función LET() asignamos nombres a los valores. Utilizando nombres descriptivos para su entendimiento.
Asignación «setValueSearch» establecemos el valor a buscar. Puede ser un número, texto entre comillas dobles, celdas vacías o referencia de una celda.
Asignación «setRange» establecemos el intervalo de la búsqueda.
Asignación «getFirstorLastorAll» establecemos como mostrar los resultados.
1 Muestra el primer resultado.
2 Muestra el último resultado.
3 Muestra todos los resultados.
Asignación «setSearchVertical » si se busca en vertical o horizontal.
Asignación «getResults» obtenemos los resultados.
Mediante la función MAP() cuya función es evaluar el rango.
Función LAMBDA() asignamos una nombre «getRange» para obtener cada valor.
Función IF() creamos un condicional si el valor es igual al valor de búsqueda obtenemos la referencia de celda con CELL().
Función REGEXREPLACE() reemplaza el símbolo dólar por valor nulo. En la referencia de celda. Ejemplo de «$A$1» resultado «A1»
Asignación «getResultsVertical» convertimos la matriz en una sola columna e ignorado valores vacíos con la función TOCOL(). Parámetro de exploración en vertical u horizontal con la asignación «searchVertical»
Función CHOOSE() retorna un resultado según el índice. Del uno al tres. Asignado anteriormente con «getFirstorLastorAll»
Índice uno: Con la función INDEX() logramos el primer valor de búsqueda exitosa. Indicado en el parámetro de fila «1».
Índice dos: Con la función INDEX() logramos el último valor de búsqueda exitosa. Indicado en el parámetro de fila, con la función función ROWS(). Conseguimos el recuento total de filas de los resultados de búsqueda exitosa.
Índice tres: Muestra todos los resultados de búsqueda exitoso.
📷 Resultados:
📺 Demo:
💾 Hoja de cálculo de Google:
📚 Referencias:
CELL(): Devuelve la información solicitada sobre la celda especificada.
TOCOL(): Esta función transforma una matriz o rango de celdas en una sola columna.
CHOOSE(): Devuelve un elemento de una lista de opciones basada en el índice.
INDEX(): Devuelve el contenido de una celda, especificado por desplazamiento de fila y columna.
ROWS(): Devuelve el número de filas de una matriz o rango especificado.
📎 Para obtener la referencia de celda o celdas. En la búsqueda de errores. He formado una fórmula mediante combinaciones de Google Spreadsheet Functions List. La funciones principales son: CELL() y ISERROR().
💡 Propuesta:
=LET(setRange; A1:F ;
setFirstorLastorAll; 3 ;
setSearchVertical; TRUE ;
getResults;MAP(setRange;LAMBDA(getRange;IF(ISERROR(getRange);REGEXREPLACE(CELL("address";getRange);"[$]+";);)));
getResultsVertical;TOCOL(getResults;1;setSearchVertical);
CHOOSE(setFirstorLastorAll;
INDEX(getResultsVertical;1);
INDEX(getResultsVertical;ROWS(getResultsVertical));
VSTACK("⚠️Erro(s) cell(s).";getResultsVertical)))
📝 Propuesta detalle:
La función LET() asignamos nombres a los valores. Utilizando nombres descriptivos para su entendimiento.
Asignación «setRange» establecemos el intervalo de la búsqueda.
Asignación «getFirstorLastorAll» establecemos como mostrar los resultados.
1 Muestra el primer resultado.
2 Muestra el último resultado.
3 Muestra todos los resultados.
Asignación «searchVertical» si se busca en vertical o horizontal.
Asignación «setSearchVertical» obtenemos los resultados.
Mediante la función MAP() cuya función es evaluar el rango.
Función LAMBDA() asignamos una nombre «getRange» para obtener cada valor.
Función IF() creamos un condicional si el valor es un error ISERROR(). Obtenemos la referencia de celda con CELL().
Función REGEXREPLACE() reemplaza el símbolo dólar por valor nulo. En la referencia de celda. Ejemplo de «$A$1» resultado «A1»
Asignación «getResultsVertical» convertimos la matriz en una sola columna e ignorado valores vacíos con la función TOCOL(). Parámetro de exploración en vertical u horizontal con la asignación «searchVertical»
Función CHOOSE() retorna un resultado según el índice. Del uno al tres. Asignado anteriormente con «getFirstorLastorAll»
Índice uno: Con la función INDEX() logramos el primer valor de búsqueda exitosa. Indicado en el parámetro de fila «1».
Índice dos: Con la función INDEX() logramos el último valor de búsqueda exitosa. Indicado en el parámetro de fila, con la función función ROWS(). Conseguimos el recuento total de filas de los resultados de búsqueda exitosa.
Índice tres: Muestra todos los resultados de búsqueda exitosos.
Función VSTACK() mostramos los resultados agregando en vertical la cabecera.
📷 Resultados:
📺 Demo:
💾 Hoja de cálculo de Google:
📚 Referencias:
CELL(): Devuelve la información solicitada sobre la celda especificada.
TOCOL(): Esta función transforma una matriz o rango de celdas en una sola columna.
CHOOSE(): Devuelve un elemento de una lista de opciones basada en el índice.
INDEX(): Devuelve el contenido de una celda, especificado por desplazamiento de fila y columna.
ROWS(): Devuelve el número de filas de una matriz o rango especificado.
IF(): Ofrece un valor si una expresión lógica es `VERDADERO` y otro si es `FALSO`.