2016-08-23 2 views
0

У меня есть две таблицы: (1) Содержит массив дат в следующем формате: 22.08.2016 13:30 (2) Содержит массив текущих дат месяца в этом формате: 08.2016COUNTIFS с разными форматами дат в листах google

Что я хочу сделать, это использовать «COUNTIF» для подсчета всех строк в электронной таблице (1), соответствующих месяцу в электронной таблице (2).

Мой подход: =COUNTIF(MONTH('spreadsheet1'!H1:H); "=MONTH('spreadsheet2'!D3)") возвращает только «0». Можете ли вы посоветовать?

ответ

1

Попробуйте counta + filter:

=COUNT(IFERROR(FILTER(A:A,MONTH(A:A)=MONTH(B1)),""))

enter image description here

Эта формула может работать также:

=ArrayFormula(SUM(if(MONTH(A:A)=MONTH(B1),1,0)))

или даже немного сложнее, но это ARRAYFORMULA будет расширяться автоматически, нет необходимо перетащить:

=QUERY(TRANSPOSE(QUERY(ArrayFormula(if(MONTH(A:A)=TRANSPOSE(MONTH(FILTER(B:B,B:B<>""))),1,0)),"select sum(Col"&JOIN("), sum(Col",ARRAYFORMULA(row(INDIRECT("A1:A"&COUNTA(B:B)))))&")",0)),"select Col2",0) 
+0

Это работает! Я также добавил заявление, поэтому он работает в течение более одного года. '= COUNTA (ФИЛЬТР (' spreadsheet1 '! H1: H; MONTH (' spreadsheet1 '! H1: H) = MONTH (D3); YEAR (' таблица 1 '! H1: H) = YEAR (D3))) –

+0

По какой-то причине, когда Формула ничего не находит, она всегда возвращает «1» вместо «0». Есть ли какое-либо исправление для этого? –

+0

Это потому, что 'counta' подсчитывает все, даже ошибки. Лучше использовать 'count + iferror', см. Обновленный ответ. –

Смежные вопросы