Как подсчитать количество вхождений каждого года в Excel?

Я хочу подсчитать, какие ячейки имеют определенный год в своей дате / строке. У меня проблема, когда моя формула работает только в том случае, если это действительная дата, в некоторых ячейках отсутствует месяц или день или они полностью пусты.

Вот несколько примеров значений, которые я хочу уметь считать:

2002-07-?
2010-11-27
2009-10-21
2009-10-21
2004-12-20


2004-11-07
2010-11-?
2004-09-17
2000-?-?
2005-04-26

Вот каким я хочу, чтобы результат был:

Unknown 2
2000    1
2001    0
2002    1
2003    0
2004    3
2005    1
2006    0
2007    0
2008    0
2009    2
2010    2

Если я использую = COUNTIF (A1: A12; "2000 *"), я получаю только те ячейки, которые являются строками. Есть ли способ посчитать и даты, и строки?


person KungWaz    schedule 29.03.2015    source источник
comment
А как насчет суммирования формулы дат и строковой формулы?   -  person Porcupine911    schedule 29.03.2015
comment
Как? Нужно ли мне иметь COUNTIF для диапазонов дат и COUNTIF для строковых значений?   -  person KungWaz    schedule 29.03.2015
comment
Да, возможно. =COUNTIF(...) + COUNTIF(...)   -  person Porcupine911    schedule 29.03.2015


Ответы (2)


Используйте вспомогательный столбец и используйте следующую формулу для извлечения года:

=IF(ISTEXT(A1);LEFT(A1;4);TEXT(A1;"YYYY"))

Затем используйте существующую формулу =COUNTIF(), но без аргумента подстановочного знака *:

=COUNTIF(A1:A12;"2000")
person SierraOscar    schedule 29.03.2015
comment
Я изменил его на это, = IF (ISTEXT (A1); LEFT (A1; 4); YEAR (A1)), и теперь он работает :) - person KungWaz; 29.03.2015
comment
Конечно, нет необходимости форматировать год, если это уже действительная дата - ох! Я обновлю свой ответ, чтобы использовать правильный региональный разделитель. - person SierraOscar; 29.03.2015
comment
Есть ли причина, по которой вы использовали вместо: как разделитель? Мой Excel не принимает,. - person KungWaz; 29.03.2015
comment
Да, это потому, что я в Великобритании! разделитель зависит от региона - например, в Великобритании и США мы используем ,, тогда как во многих европейских регионах также используется ; - это только функции рабочего листа, которые используют разные разделители, VBA использует , глобально. - person SierraOscar; 29.03.2015

У меня нет под рукой Excel, чтобы проверить это, но я считаю, что у вас может быть другой столбец, который преобразует значение в текст - я думаю, что это =TEXT(A1,"<format>"), а затем просто сделайте свой «counttif» на этом.

РЕДАКТИРОВАТЬ: забыл о втором аргументе. Я удивлен, что это не сработало с аргументом «yyyy».

person Flynn1179    schedule 29.03.2015
comment
Если я использую = TEXT (A1), я получаю сообщение об ошибке с несколькими аргументами, и если я использую = YEAR (A1), он не обрабатывает неверные значения даты. Я также пробовал = ТЕКСТ (A1; гггг) безуспешно. - person KungWaz; 29.03.2015
comment
формула =TEXT() требует формата вывода в дополнение к ссылке на ячейку, например =TEXT(A1,"@") - person SierraOscar; 29.03.2015