Excel Количество ячеек с номером, если соблюдены определенные условия - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу найти процент ячеек в столбце NO2 (например), которые содержат число, учитывая только ячейки, которые выпадают в определенный месяц в течение определенного часа - например, сколько ячеек содержат числа в NO2 колонка в течение первого часа в течение каждого дня января.

Я пытался сделать 1 - COUNTIF(condition,"*")/COUNTA(condition), но у меня проблемы с записью части условия.

Состояние (с учетом трех месяцев). Это дает мне $ VALUE! ошибка, если я пытаюсь поместить это в COUNTIF

IF($C$1:$C$8985="January",
IF($B$1:$B$8985="1:00",$E$1:$E$8985,""),
IF($C$1:$C$8985="February",
IF($B$1:$B$8985="1:00",'$E$1:$E$8985,""),
IF($C$1:$C$8985="December,
IF($B$1:$B$8985="1:00",$E$1:$E$8985,"")

enter image description here

1 Ответ

0 голосов
/ 01 ноября 2018

Попробуйте использовать =SUMPRODUCT():

=SUMPRODUCT(--(A:A="January"), --(B:B=TIMEVALUE("1:00")), --(ISNUMBER(C:C)))

Где бы вы заменили:

  • A:A с вашим столбцом месяца
  • B:B с вашим столбцом времени
  • C:C с вашей колонкой NO2

Добавление в 'ИЛИ ЛОГИКА'

Если вы хотите использовать ИЛИ логику , вы можете просто «добавить» критерии, чтобы они выглядели как
--((A:A="January")+(A:A="February")).

=SUMPRODUCT(--((A:A="January")+(A:A="February")), --(B:B=TIMEVALUE("1:00")), 
    --(ISNUMBER(C:C)))

Таким образом, это говорит о том, что столбец A может быть January ИЛИ February, и Столбец B имеет значение времени 1:00, и столбец C представляет собой числовое значение.


По сути, это создает три массива - по 1 для каждого из ваших критериев. Это будет выглядеть примерно так:

{"January", "January", "January", "February"}  
{"1:00 AM", "1:00 AM", "2:00 AM", "1:00 AM" }  
{      1.0,       1.3,    "text",         4 }  

Преобразует их в True / False

{True, True, True, True}
{True, True,False, True}
{True, True,False, True}
 ^^^^  ^^^^        ^^^^     << Counts the number where ALL are 'True'

Когда каждый из «индексов» возвращает true, он добавляется в вашу функцию.

Если эти массивы не имеют одинаковую длину, то ваша функция SUMPRODUCT() выдаст ошибку.

{True, True, True, True}
{True, True,False, True}
{True, True,False}
 ^^^^  ^^^^        *ERR    << Returns error as the last array was smaller
...