Hola a todos!
Hoy de nuevo voy a escribir sobre funciones matriciales, en el post de hoy veremos cómo podemos sumar el valor de cada «n» números en un rango.
Creo que la mejor forma de explicar esto se puede hacer con una imagen:
Imaginad que tenemos que hallar el resultado de cada cuatro números en la columna A, (adicionalmente en la columna B he colocado estos números para ofrecer un ejemplo más claro. El resultado sería de 40.
Para realizar esta operación con una sola fórmula o bien recurrimos a macros o bien utilizamos fórmulas matriciales. En el ejemplo de hoy utilizaré una fórmula matricial:
{=SUMA(SI(RESIDUO(FILA(INDIRECTO("1:"&CONTAR(A:A)));4)=0;DESREF(A2;0;0;COINCIDIR(9,99999999999999E+307;A:A)-FILA(A2)+1;1);""))}
Una vez aplicada, el resultado es el de 40:
Con esta fórmula somos capaces de obtener los «n» valores que decidamos dentro de un rango variable y proceder a su suma. En rojo está el número que os servirá para indicar el «n» valor, en este ejemplo, el 4.
Os recuerdo que las matrices se introducen: seleccionando la celda que contiene la fórmula, pulsando en F2 , seleccionamos la fórmula y luego presionamos CTRL + MAYUS + ENTRAR
Y esto a ha sido todo, espero que os resulte de interés.
Descarga el archivo de ejemplo pulsando en: SUMAR EL VALOR DE CADA N NÚMEROS EN UN RANGO
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
//Otra forma en desde el módulo PQ de excel:
let Parameters =(modulo)=>
let
Origen = Excel.CurrentWorkbook(){[Name=»Tabla1″]}[Content],
#»Tipo cambiado» = Table.TransformColumnTypes(Origen,{{«NUMEROS», Int64.Type}}),
#»Índice agregado» = Table.AddIndexColumn(#»Tipo cambiado», «Índice», 0, 1),
#»Módulo insertado» = Table.AddColumn(#»Índice agregado», «Módulo», each Number.Mod([Índice], modulo), type number),
#»Filas filtradas» = Table.SelectRows(#»Módulo insertado», each ([Módulo] = 3)),
#»Filas agrupadas» = Table.Group(#»Filas filtradas», {«Módulo»}, {{«Suma», each List.Sum([NUMEROS]), type number}}),
#»Columnas quitadas» = Table.RemoveColumns(#»Filas agrupadas»,{«Módulo»})
in
#»Columnas quitadas»
in Parameters
Hola asa80:
Sí, se puede hacer perfectamente así (gracias por aportar otro punto de vista). Y también con VBA. En este caso, quería desarrollarlo con Matrices, un poco también para cambiar la serie de post en visual y tocar un poco de formulación clásica, que muchas veces es una alternativa interesante.
Saludos!!