Это таблица:
Я хотел бы иметь что-то вроде:
Но если я использую эту формулу. Он отображает номер 1
=COUNTIFS(YEAR($B$2:$B$1679), F5, MONTH($B$2:$B$1679), E5)
Если я использую эту формулу для получения всех купленных товаров, отображается ошибка «Аргументы массива COUNTIFS имеют разный размер».
=COUNTIFS(YEAR($B$2:$B$1679), F5, MONTH($B$2:$B$1679), E5, $A$2:$A$1679, "purchase")
Это таблица: https://docs.google.com/spreadsheets/d/1MdkQtOAe03WCTrCZaR66XKD2xICJDNEFYsyc_RDUC_g/edit?usp=sharing
Вам следует использовать функцию ФОРМУЛА МАССИВА.
Такие функции, как YEAR(B2:B1679)
или MONTH(B2:B1679)
, генерируют массивы значений. Вы можете попробовать ввести простой пример, например YEAR(B2:B5)
, и увидеть, что в этом случае генерируется ошибка.
Для вашего конкретного случая использования вы можете исправить формулу примерно так:
=ARRAYFORMULA(COUNTIFS(YEAR(B2:B1679), F5, MONTH(B2:B1679), E5, A2:A1679, "purchase"))
Используя пример таблицы данных, приведенный в начале первого сообщения, я использовал 3 формулы для создания таблицы результатов.
Предполагая, что данные находятся в диапазоне A1:B9, первая формула, которую нужно ввести в ячейку D1
:
=query(A2:B,"Select Year(B), Month(B)+1, Count(A) Where Year(B) Is Not Null Group By Year(B), Month(B)+1 Label Year(B) 'YEAR', Month(B)+1 'MONTH', Count(A) 'TOTAL'")
Формула в ячейке G1
:
=arrayformula({"PURCHASED";if (D2:D = "","",countifs(year(B2:B),D2:D,month(B2:B),E2:E,A2:A,"purchase"))})
Формула в ячейке H1
:
=arrayformula({"DECLINED";if (D2:D = "","",countifs(year(B2:B),D2:D,month(B2:B),E2:E,A2:A,"decline"))})
И формула в ячейке I1
:
=arrayformula({"REMINDME/BILLME LATER";if (D2:D = "","",countifs(year(B2:B),D2:D,month(B2:B),E2:E,A2:A,"<>decline",A2:A,"<>purchase"))})
.
.
Обновлено:
Другой вариант — использовать одну формулу ниже в ячейке D1
, и вся таблица будет заполнена, как показано на изображении ниже;
=ARRAYFORMULA(
QUERY({A2:B,IF(A2:A = "decline",A2:A,""),IF(A2:A = "purchase",A2:A,""),IF(A2:A = "remindmelater",A2:A,""),IF(A2:A = "billmelater",A2:A,"")},
"Select Year(Col2), Month(Col2)+1, Count(Col3), Count(Col4), (Count(Col5)+Count(Col6)), Count(Col1) Where Col1 Is Not Null
Group By Year(Col2), Month(Col2)
Label Year(Col2) 'YEAR', Month(Col2)+1 'MONTH', Count(Col3) 'DECLINE',Count(Col4) 'PURCHASE', (Count(Col5)+Count(Col6)) 'REMINDME/BILLME_LATER', Count(Col1) 'TOTAL'"))
.
Вы можете увидеть две альтернативы в образце по ссылке ниже;
https://docs.google.com/spreadsheets/d/1YeZfkgC8QCmA8rLRMNFE8xxlXRg4iAjzYb3kS54nxCQ/edit?usp=sharing
.