Индексируйте и сравнивайте по нескольким критериям

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

Я пытаюсь использовать ПОИСКПОЗ и ИНДЕКС, чтобы найти ячейки на один час за один сезон.

=INDEX(A1:E8985,MATCH(Z2,(C3:C8985=AA2,AA3,AA13)*(B3:B8985=Z2),0))

где A1: E8985 - область таблицы, в которой я ищу

Z2 - это час (1:00) в столбце B, который содержит часы.

AA2,AA3,AA13 - это январь, февраль и декабрь (один сезон), если смотреть в столбце C, который содержит месяцы.

Прямо сейчас я получаю сообщение об ошибке #N/A, хотя критерии должны выполняться несколько раз. Я убедился, что столбцы соответствуют форматам.

Образец части таблицы:

Date    Time        Month        NO     NO2

1/1/2016    1:00    January -0.1    0.2
1/1/2016    2:00    January -0.1    0.1
1/1/2016    3:00    January -0.1    0.1
1/1/2016    4:00    January -0.1    0.2
1/1/2016    5:00    January -0.1    0.2
1/1/2016    6:00    January -0.1    0.4
1/1/2016    7:00    January -0.1    0.3
1/1/2016    8:00    January -0.1    0.8
1/1/2016    9:00    January -0.1    0.5
1/1/2016    10:00   January -0.1    0.2
1/1/2016    11:00   January -0.1    1.3
1/1/2016    12:00   January -0.1    0.7
1/1/2016    13:00   January -0.1    0.4
1/1/2016    14:00   January 0   0.7
1/1/2016    15:00   January -0.1    0.5
1/1/2016    16:00   January -0.1    0.4
1/1/2016    17:00   January -0.1    1
1/1/2016    18:00   January -0.1    0.7
1/1/2016    19:00   January -0.1    0.9
1/1/2016    20:00   January 1.6 4.5
1/1/2016    21:00   January 2.8 6
1/1/2016    22:00   January 0.1 1.1
1/1/2016    23:00   January 0.2 1.3
1/2/2016    0:00    January 0.2 1.4
(C3:C8985=AA2,AA3,AA13) - неправильный синтаксис для ORing. Возможно, вы захотите: ((C3:C8985=AA2)+(C3:C8985=AA3)+(C3:C8985=AA13)) Могут быть и другие проблемы, но это явно одна из них.
Ron Rosenfeld 31.10.2018 02:15

Спасибо. Я действительно хотел делать «и», а не «или». Я пробовал использовать только один ввод, но он по-прежнему ничего не возвращает.

SugaKookie 31.10.2018 06:45

Как вы можете сопоставить январь, февраль и декабрь? Каждая строка содержит только один месяц.

Ron Rosenfeld 31.10.2018 08:55

Чтобы уточнить, я думаю, вы захотите протестировать каждую строку, чтобы увидеть, если ((theMonth = Янв) OR (theMonth = февраль) OR (theMonth = Dec)) AND (theHour = 1:00). Если это не так, значит, я неверно истолковал.

Ron Rosenfeld 31.10.2018 11:15
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
4
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Позвольте мне резюмировать логику, которую вы хотите: вам нужен 98 процентиль NO2, где месяц либо январь, либо февраль, либо декабрь, а значение времени - 1:00, затем 2:00 и так далее.

Если это так, найдите ниже формулу, применяемую только к текущим данным, которые вы предоставили.

Обратите внимание, что это формула массива

=PERCENTILE.INC(
    IF(C1:C25 = "January",
        IF(B1:B25=Z2,
            E1:E25,
            ""),
        IF(C1:C25 = "February",
            IF(B1:B25=Z2,
                E1:E25,
                ""),
            IF(C1:C25 = "December",
                IF(B1:B25=Z2,
                    E1:E25,
                    ""),
                ""))
    ),0.98)

Другие вопросы по теме