Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

343
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda