В Excel, как посчитать между date1 и date2, которые имеют ячейки в строке, которые содержат текст? - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно выбрать ячейки в одном столбце между двумя датами, а затем на основе строк, содержащих эти даты, выбрать ячейки в другой строке, также содержащей содержимое.

Я не использовал ISBLANK, поскольку она считает формулу, но пустую ячейку, непустой.Вместо этого проверьте, есть ли контент по "*".

. Вот что я придумал, но вместо того, чтобы возвращать количество ячеек, вместо этого возвращается TRUE (что, очевидно, не то, что я хочу).

В приведенной ниже формуле я предполагаю:

  • C:C - весь столбец, содержащий ДАТЫ .
  • E:E - это весь столбец, содержащий CONTENT .
  • Диапазон дат в этом случае составляет от 1 января 2018 года до 31 января 2018 года .

  • "*" означает, что в ячейке есть содержимое

    =IF(AND(COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&"2018-1-31"),COUNTIF(E:E,"*"))=0,"",AND(COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&"2018-1-31"),COUNTIF(E:E,"*")))

Моя цель - :

  • подсчитать количество ячеек в столбце E, которые находятся между датами в столбце C
  • , если вся формула равна 0, затем верните бланк.

См. Это изображение примера листа Excel, чтобы прояснить мои намерения:

excel sheet

Как мне заставить мою формулу работать так, чтобы она работала какнужно?


РЕШЕНИЕ


Привет всем, так что благодаря @girlvsdata у нас есть рабочее решение.Мне пришлось сделать пару правок в ее коде, чтобы работать для меня, но ее формула в целом работает отлично.Вот решение:

Чтобы выбрать все ячейки в столбце E, которые не являются пустыми, между диапазоном дат всего января (неизвестная дата окончания) на основе соседнего столбца C, если это ваш столбец даты,тогда решение будет таким:

=IF(COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&EOMONTH("2018-1-1",0),E:E,"*")=0,"",COUNTIFS(C:C,">="&"2018-1-1",C:C,"<="&EOMONTH("2018-1-1",0),E:E,"*"))

Обратите внимание, что "2018-1-1" - это 1 января 2018 года, а EOMONTH("2018-1-1",0) - последний действительный день января в 2018 году (в данном случае 31, но если этодругой другой год (например, для февраля это работает и для високосных лет) тогда будет последний день).Также устраняется необходимость расчета последнего дня или каждого месяца, а также месяцев с изменяющимися датами окончания в зависимости от года (например, февраль). Это важно, чтобы устранить погрешность .

Единственное, что вам нужно сделать, чтобы изменить месяц, - это только изменить, например, -1- (январь) на -2- за февраль,или измените год на другие годы.С помощью этой формулы вы можете игнорировать часть дня.

Если ответ 0 (между ячейками нет содержимого между диапазонами), то ячейка будет пустой, а не 0. (GOod для того, когда вы хотите создатьлист, проверяющий будущие даты для будущей ссылки, когда на лист добавляется больше строк.

Он также работает на разных листах, просто используйте, скажем, ваш другой лист называется «Трекер», затем используйте Tracker!C:C и Tracker!E:E. Надеюсь, это поможет!

Спасибо всем!: D

1 Ответ

0 голосов
/ 12 сентября 2018

(Обратите внимание: мой локальный формат даты - день, затем месяц)

С данными, представленными в вашем примере выше:

       A          B
1     Dates     |Content
    ------------+-------
2   1/01/2018   |
3   2/01/2018   |123456
4   3/01/2018   |
5   4/01/2018   |12398
6   5/01/2018   |484
7   6/01/2018   |1538
8   7/01/2018   |
9   8/01/2018   |   
10  9/01/2018   |
11  10/01/2018  |14648
12  11/01/2018  |
13  12/01/2018  |145615
14  13/01/2018  |

И с диапазоном дат в ячейках D2 и E2:

Date Start  Date End
2/01/2018   7/01/2018

Эта формула возвращает число:

=COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0")

Это будет зависеть от того, отформатированы ли ваши числа в Column B как текст или число.Если они отформатированы как числа, приведенная выше формула будет работать.Если они отформатированы как текст, замените последний раздел ">0" на "*".

Эта формула добавляет условную часть вашего вопроса:

=IF(COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0")=0,"",COUNTIFS(A:A,">="&D2,A:A,"<="&E2,B:B,">0"))

(Если формула возвращает 0, покажите пустым)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...