Преобразование многошаговой суммы логических значений в одну формулу


10

У меня есть несколько показаний датчика, и я проверяю, находятся ли значения в приемлемом диапазоне.

Для этого я использую, IFчтобы проверить, являются ли значения >или <расчетное (среднее) значение. Результаты сохраняются в соответствующих столбцах. Наконец, я суммирую результаты, чтобы подсчитать, сколько из них выходит за пределы (т.е. выше среднего).

Например, Axпо сравнению с Mean. Axчтобы получить 1или 0в If value is outside accepted bounds. Ax:

Изображение 1

Тогда сумма If value is outside accepted bounds. Axвыполняется, чтобы получить Number of values outside bound. Ax:

Изображение 2, суммирование

Вопрос
Как мне преобразовать это в одну формулу?

Ответы:


11

Функция, которую вы ищете COUNTIF():

Скриншот рабочего листа

Введите следующую формулу в G3и ctrl-enter / copy-paste / fill-right в G3:I3:

=COUNTIF(A3:A8,">"&D3)

COUNTIF() проверяет каждое значение в первом аргументе на соответствие критериям во втором и подсчитывает, сколько раз оно встречается.


Использование COUNTIF()- самое простое и лучшее решение.

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

=SUMPRODUCT(--(A3:A8>D3))

или массив введен как

{=SUM(--(A3:A8>D3))}

или даже более излишне сложная версия тех.

Тем не менее, нет никакой пользы от использования любого из них в данном конкретном случае.


На самом деле, поскольку вы, похоже, заинтересованы в уменьшении количества вспомогательных столбцов, еще более удачным решением будет также обойтись без средних вспомогательных столбцов:

Скриншот рабочего листа

Введите следующую формулу в D3и ctrl-enter / copy-paste / fill-right в D3:F3:

=COUNTIF(A3:A8,">"&AVERAGE(A3:A8))

(И да, эта формула также может быть усложнена для новичка путем ее преобразования в =SUMPRODUCT(--(A3:A8>AVERAGE(A3:A8)))или {=SUM(--(A3:A8>AVERAGE(A3:A8)))}.)


@AFH Спасибо за редактирование (и upvote ;-)). Интересно, как это случилось? И что еще более важно, как я не заметил этого ¯ \ _ (ツ) _ / ¯
robinCTS

Congrats. Системные боты выбирают сообщения с высоким рейтингом для использования в качестве проверок в очереди просмотра LQP. Этот пост был выбран как «некачественный» пост - почетный знак. :-)
fixer1234

@ fixer1234 О, конечно (-‸ლ) я даю три альтернативных решения проблемы Y, а затем приступаю к решению проблемы X. И вдобавок ко всему я предлагаю объяснение того, как COUNTIF()работает эта функция. Ясно, что этот ответ низкого качества! В следующий раз я буду придерживаться одной строки, код только ответ. (PS Только что проверил временную шкалу . Похоже, вы провалили аудит - вы выбрали Looks OK;-))
robinCTS

2

Функция SUMPRODUCT может решить и вашу проблему.

введите описание изображения здесь

Запишите эту формулу в G102 и заполните ее справа от G102 до I102:

=SUMPRODUCT(--(A102:A107>D102:D107))

ПРИМЕЧАНИЕ. Настройте адрес ячейки в соответствии с вашими потребностями.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.