Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

352
Vistas
¿Es posible recorrer una fila de datos y sumar cada n-ésima celda usando una función Lambda?

Tengo un modelo que produce una matriz de valores que pueden tener varios cientos de columnas de ancho. Cada columna 25 contiene un número que necesito agregar al total.

Pensé que la solución más limpia sería crear una función LAMBDA que tomaría la celda inicial de la entrada del usuario y luego la compensaría en las celdas de la fila 25, agregaría el valor allí a un total acumulado y continuaría con la compensación hasta llegar a una celda vacía. .

¿Es posible? ¿Cómo hacerlo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No creo que sea posible hacer un bucle como desee en Excel con funciones normales (puede hacerlo con VBA resistente). Pero puede beneficiarse de DESREF y SUMPRODUCT para resumir valores cada n-ésima columna.

Como ejemplo, hice un conjunto de datos falso:

ingrese la descripción de la imagen aquí

Obtuvo valores de las columnas 1 a 30 (A a AD). Quiero sumar valores cada 5 columnas (1, 5, 10, 15,... y así sucesivamente). Las celdas bordeadas son los resultados calculados manualmente para comprender la lógica, pero puede hacerlo en una sola fórmula:

 =SUMPRODUCT(--(COLUMN(OFFSET(A4;0;0;1;COUNTA(A4:AD4)+COUNTBLANK(A4:AD4)))/5=INT(COLUMN(OFFSET(A4;0;0;1;COUNTA(A4:AD4)+COUNTBLANK(A4:AD4)))/5))*A4:AD4)+A4

Así es como funciona:

  1. COUNTA(A4:AD4)+COUNTBLANK(A4:AD4) esto devolverá cuántas columnas, incluidos los espacios en blanco, obtuvieron sus datos
  2. OFFSET creará un rango desde la primera hasta la enésima columna (resultado del paso anterior)
  3. SUMPRODUCT sumará cada enésimo valor de esa fila (en mi ejemplo, cada 5 columnas)
  4. Agregamos manualmente la primera entrada, la columna 1, al final de la fórmula

Si desea cada 25 columnas, simplemente reemplace /5 con /25

over 4 years ago · Santiago Trujillo Denunciar

0

Debería poder hacer esto con un LAMBDA recursivo.

 StridingSum = LAMBDA(cell, step, [start], LET( colOffset, IF(ISOMITTED(start), -1, start) + step, value, OFFSET(cell, 0, colOffset), IF( value = "", 0, value + StridingSum(cell, step, colOffset) ) ) );

Que llamas como =StridingSum(A2, 25) (asumiendo que tus datos comenzaron en A1)

over 4 years ago · Santiago Trujillo Denunciar

0

Esto podría funcionar un poco mejor que el de Paul al permitirle seleccionar la primera celda de datos en lugar de la segunda.

 StridingSum = LAMBDA(cell, step, [start], LET( colOffset, IF(ISOMITTED(start), 0, start + step), value, OFFSET(cell, 0, colOffset), IF( value = "", 0, value + StridingSum(cell, step, colOffset) ) )
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda