1

У меня есть столбец с датами разных дней с разным временем, и я хочу знать, сколько разных дней в этом столбце. Я получил его для работы в OpenOffice в английской системе, но он больше не работает в итальянской или немецкой системе с Microsoft Excel:

=SUMPRODUCT((IF(FREQUENCY(DATEVALUE(MONTH(A1:A9)&"/"&DAY(A1:A9)&"/"&YEAR(A1:A9)),DATEVALUE(MONTH(A1:A9)&"/"&DAY(A1:A9)&"/"&YEAR(A1:A9))),TRUE())>0)*(MONTH(A1:A9)=6))

И вот как выглядит моя колонка

2016-06-29 19:50:00
2016-06-29 20:00:00
2016-06-29 11:34:00
2016-06-29 11:34:24
2016-06-29 12:33:29
2016-06-29 20:47:00
2016-06-30 11:46:46
2016-07-01 13:11:55
2016-07-01 13:12:26

Для этих значений я ожидаю, что формула вернет 3, потому что есть 3 разных дня.

Наконец, я хотел бы изменить формулу, чтобы можно было отфильтровать ее по месяцам, чтобы я мог сказать: «дайте мне число различных дат в июне», и она возвращает 2.

3 ответа3

1

Вот простой способ определить количество для определенного условия. Я поместил ваш пример в рабочую книгу и написал формулу для подсчета количества вхождений с 6-м месяцем в них:

В формуле, которую я использовал, используется ссылка на массив, поэтому в ней есть фигурные скобки. После ввода формулы в, нажмите Shift + Enter , а не просто Enter сам по себе.

В операторе if говорится, что если месяц = 6, верните 1, а если нет 0. Затем он просто складывает итоги с помощью функции суммы. Если вы хотите изменить его на год, вы просто измените часть формулы MONTH().

Также обратите внимание, насколько чище и проще моя формула, которой намного легче следовать

1

Я не мог заставить вашу формулу работать в Excel English.

Эта формула должна работать в Excel, (вам может потребоваться перевести на правильный язык):

=SUM(--(FREQUENCY(IF(MONTH(A1:A9)=6,MATCH(INT($A$1:$A$9),INT($A$1:$A$9),0)),ROW($A$1:$A$9)-ROW($A$1)+1)>0))

Это формула массива, которая должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования. Если все сделано правильно, тогда Excel поместит {} вокруг формулы.

1

Я использовал вспомогательный столбец для сове. Как показано на верхнем рисунке, ваши данные находятся в диапазоне от A1 до A9

в использовании B1

=DATE(YEAR(A1),MONTH(A1),DAY(A1))

Это преобразует данные в дату (удаление времени)

в С1 используйте это

=IF(COUNTIF($B$1:B1,B1)>1,2,1)

Это поместит 1 в первое вхождение даты и 2 для других

Наконец, вы можете считать 1, используя

=COUNTIF(C1:C9,1)

С уважением

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .