Haré todo lo posible para explicarlo. Digamos que tengo una hoja que se ve así (en este ejemplo artificial, digamos que estoy enviando correos electrónicos de marketing a varias personas, sé sus edades y códigos postales, y quiero hacer un seguimiento de las tasas de clics en esos correos electrónicos):
A | B | C
1 Age | zip code | click?
2 26 | 11111 | true
3 27 | 11112 | true
4 28 | 11111 | false
5 27 | 22222 | false
6 28 | 11112 | false
7 26 | 22222 | true
Ahora quiero rastrear varias estadísticas. En este caso, quiero hacer un seguimiento de la tasa de clics por edad y por código postal. Entonces tengo una mesa como esta:
E F G
1 Age | # sent | # clicked
2 26 |
3 26 |
4 27 |
5 28 |
Básicamente, en la columna "# enviado", puedo poner (en F2, por ejemplo):
=COUNTIF(A:A, E2)
Y esto daría como resultado un 2 en la celda F2, porque hubo dos ocurrencias de "26" en la columna A.
Pero ahora, ¿qué pasa si quiero saber cuántos clics? Quiero decir algo como:
=COUNTIF(A:A == E2 AND C:C == True, for the same row where A:A matched E2)
Sé que puedo agregar otra columna D con una fórmula como
=IF(C2, A2, "")
Lo cual solo será la edad en la columna D si la columna C es verdadera. Pero puedo tener potencialmente muchos criterios y no parece que deba agregar otra columna "falsa" para cada columna de criterios que tengo.
¿Hay alguna forma de hacer esto? Si no está en Google Docs, ¿en Excel?
fuente
Respuestas:
Utilice una combinación de ARRAYFORMULA, SUM y operaciones aritméticas.
Aquí está la función para contar todos los clics de una persona de 26 años:
Hay 3 partes en esta operación.
Esencialmente, verdadero se convierte en 1 y falso se convierte en 0. La lógica booleana se realiza mediante operaciones aritméticas.
Una operación AND usa la multiplicación:
Una operación OR utiliza una combinación de la función * SIGN y la suma:
Nota: La función de signo es necesaria debido a la forma en que la suma booleana funciona de manera diferente a la suma aritmética. Básicamente, en la suma booleana 1 + 1 = 1, en la suma aritmética 1 + 1 = 2. Obviamente, la suma aritmética desordenará el recuento, por lo que debe ejecutar los resultados de las operaciones de suma a través de una función de signo. La función de signo devuelve 1 si el valor es positivo, 0 si el valor es 0 y -1 si el valor es negativo.
Digamos que desea contar los clics para todos los usuarios entre 20 y 25 años:
fuente
both
20 y 23, por ejemplo, por lo que la suma nunca le daría un valor> 1 en este caso. SIGN solo se requiere si las condiciones no son mutuamente excluyentes. Además, ¿no se podría hacer más fácilmente entre 20 y 25 con esta versión?=arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
A partir de ahora, las nuevas Hojas de cálculo de Google son compatibles con COUNTIFS, que pueden manejar directamente el trabajo requerido.
=COUNTIFS(A:A, E2, C:C, "true")
Liste todos los rangos y la comparación para hacer separados por comas.
fuente
En Excel, usaría SUMPRODUCT en Excel 2003 o COUNTIFS (con una "S") en Excel 2007 o posterior ....... pero en Google Docs intente esto
=arrayformula(sum((A:A=E2)*(C:C=TRUE)))
fuente
Esto fue para dos columnas, estoy usando esto para mi lista de invitados a la boda, en este caso, tabulando "Sí" al enviar una fecha de guardado y "EE. UU." Para la ubicación, para poder calcular el franqueo más tarde. Puede haber una fórmula más corta, pero parece funcionar, ¡así que no me estoy metiendo con ella!
Conteo feliz
fuente
En Excel, olvidaría las fórmulas y usaría tablas dinámicas.
Es posible que deba agregar una columna de "contador", que podría usarse una y otra vez como la variable que suma para obtener resultados.
fuente
Puede agregar la matriz que desea probar en {}.
En el siguiente ejemplo:
fuente