Я постараюсь объяснить. Скажем, у меня есть лист, который выглядит следующим образом (в этом надуманном примере, скажем, я рассылаю маркетинговые электронные письма разным людям, знаю их возраст и почтовые индексы и хочу отслеживать рейтинг кликов в этих письмах):
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
Теперь я хочу отслеживать различные характеристики. В этом случае я хочу отслеживать рейтинг кликов по возрасту и по почтовому индексу. Итак, у меня есть такая таблица:
E F G
1 Age | # sent | # clicked
2 26 |
3 26 |
4 27 |
5 28 |
Так что в основном в столбце «# sent» я могу поставить (например, в F2):
=COUNTIF(A:A, E2)
И это привело бы к 2 в ячейке F2, потому что было два вхождения «26» в столбце A.
Но что теперь, если я хочу узнать, сколько кликнуло? Я хочу сказать что-то вроде:
=COUNTIF(A:A == E2 AND C:C == True, for the same row where A:A matched E2)
Я знаю, что могу добавить еще один столбец D с формулой, как
=IF(C2, A2, "")
Это будет только возраст в столбце D, если столбец C истинен. Но у меня может быть много критериев, и мне не нужно добавлять еще один «поддельный» столбец для каждого столбца критериев, который у меня есть.
Есть ли способ сделать это? Если не в Google Docs, в Excel?
Ответы:
Используйте комбинацию ARRAYFORMULA, SUM и арифметических операций.
Вот функция подсчета всех кликов по возрасту 26 лет:
Эта операция состоит из 3 частей.
По сути, true преобразуется в 1, а false преобразуется в 0. Булева логика выполняется с использованием арифметических операций.
И операция использует умножение:
ИЛИ операция использует комбинацию * SIGN функции и дополнение:
Примечание. Функция sign необходима из-за того, что логическое сложение работает иначе, чем арифметическое сложение. В основном при логическом сложении 1 + 1 = 1, в арифметическом сложении 1 + 1 = 2. Очевидно, что арифметическое сложение испортит счет, поэтому вам нужно пропустить результаты операций сложения через функцию знака. Функция знака возвращает 1, если значение положительное, 0, если значение 0, и -1, если значение отрицательное.
Допустим, вы хотели посчитать клики для всех пользователей в возрасте 20-25 лет:
источник
both
20 и 23, так что сложение никогда не даст вам значение> 1 в этом случае. ЗНАК требуется только в том случае, если условия не являются взаимоисключающими. Также не было бы легче сделать между 20 и 25 с этой версией?=arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
На данный момент новые Google Sheets поддерживают COUNTIFS, которые могут напрямую обрабатывать требуемую работу.
=COUNTIFS(A:A, E2, C:C, "true")
Перечислите все диапазоны и сравнение, которые нужно разделить запятыми.
источник
В Excel я бы использовал SUMPRODUCT в Excel 2003 или COUNTIFS (с "S") в Excel 2007 или более поздней версии ....... но в Google Docs попробуйте это
=arrayformula(sum((A:A=E2)*(C:C=TRUE)))
источник
Это было для двух столбцов - в этом случае я использую это для моего списка приглашенных на свадьбу - в таблице указано «Да» при отправке даты сохранения и «США» для местоположения, чтобы я мог вычислить почтовые расходы позже. Может быть, более короткая формула, но это, кажется, работает, так что я не возиться с этим!
Удачного подсчета.
источник
В Excel я бы забыл формулы и использовал сводные таблицы.
Вам может потребоваться добавить один столбец «counter», который можно использовать снова и снова в качестве переменной, которую вы суммируете, чтобы получить результаты.
источник
Вы можете добавить массив, который вы хотите проверить в {}.
В приведенном ниже примере:
источник