sumif sumar sheets resta google funcion docs contar conjunto buscar bdsuma performance google-sheets google-query-language

performance - sumar - Función SUMIFS en Google Spreadsheet



sumar.si.conjunto en google docs (4)

A partir de diciembre de 2013, Google Sheets ahora tiene una función SUMIFS, como se menciona en esta publicación del blog y se documenta here .

Tenga en cuenta que las hojas de cálculo antiguas no se convierten a la nueva versión, aunque puede intentar copiar y pegar los datos en un nuevo libro de trabajo.

Estoy tratando de tener una función similar a SUMIFS (como SUMIF pero con más de un solo criterio) en una hoja de cálculo de Google. MS-Excel tiene esta función incorporada ( http://office.microsoft.com/en-us/excel-help/sumifs-function-HA010342933.aspx?CTT=1 ).

He intentado usar ArrayFormula ( http://support.google.com/docs/bin/answer.py?hl=en&answer=71291 ), similar al SUMIF:

=ARRAYFORMULA(SUM(IF(A1:A10>5, A1:A10, 0)))

Añadiendo Y :

=ARRAYFORMULA(SUM(IF(AND(A1:A10>5,B1:B10=1), C1:C10, 0)))

Pero la función AND no recogió la instrucción ArrayFormula y devolvió FALSE todas las veces.

La única solución que pude encontrar fue usar QUERY, que parece un poco lento y complejo:

=SUM(QUERY(A1:C10,"Select C where A>5 AND B=1"))

Mi objetivo es llenar una tabla (similar a una tabla dinámica) con muchos valores para calcular:

=SUM(QUERY(DataRange,Concatenate( "Select C where A=",$A2," AND B=",B$1)))

¿Alguien logró hacerlo de una manera más simple y rápida?


En mi opinión, la forma más sencilla de realizar funciones similares a SumIFS es combinar las funciones FILTRO y SUMA.

SUM(FILTER(sourceArray, arrayCondition_1, arrayCondition_2, ..., arrayCondition_30))

Por ejemplo:

SUM(FILTER(A1:A10;A1:A10>5;B1:B10=1)

Explicación: el FILTRO () filtra las filas en A1: A10 donde A1: A10> 5 y B1: B10 = 1. Luego SUM () suma los valores de esas celdas.

Este enfoque es muy flexible y permite realizar funciones de COUNTIFS () también (por ejemplo, usar COUNT () en lugar de SUM ()).


Encontré una función más rápida para llenar la "tabla dinámica":

=ARRAYFORMULA(SUM(((Sample!$A:$A)=$A2) * ((Sample!$B:$B)=B$1) * (Sample!$C:$C) ))

Parece que se ejecuta mucho más rápido sin las funciones de cadena y consulta más pesadas.


Este tipo usó la función de filtro para cortar la matriz según los criterios, luego la función de suma para agregarlo todo en la misma celda. http://www.youtube.com/watch?v=Q4j3uSqet14 Funcionó como un encanto para mí.