Я пытаюсь написать функцию, которая анализирует столбец на наличие "да", "НД" и "нет". Если во всех строках есть "да" или "НД", то статус отправки будет "да" (могут быть все "да" и 1 НД, и статус отправки должен быть "да"). Однако, если в любой строке есть "Нет", то статус отправки должен быть "Нет". Вот что у меня есть:
=ЕСЛИ(СЧЁТЕСЛИМН(H4:H14;{"Да";"НД"})=СЧЁТЗ(H4:H14);"Да";"Нет")
Он выдает мне "да" только тогда, когда все строки "да". Когда строка отображается как "NA" со всеми остальными строками как "Да", он отображает "Нет" в области статуса отправки, что неверно. Все "Нет" в строках отображают статус отправки "Нет", что верно. Может кто-нибудь помочь мне разобраться с этим кодом?
решение1
Я вижу три способа сделать это.
Согласно комментарию cybernetic.nomad, если сосредоточиться на постановке задачи «...если в какой-либо строке есть «Нет...», то мы хотим подсчитать ячейки, в которых есть «Нет».
=ЕСЛИ(СЧЁТЕСЛИ(H4:H14;"Нет")=0;"Да";"Нет")
С другой стороны, если вы хотите сосредоточиться на этом с другой стороны — «...Если во всех строках есть «да» или «НД»...», то мы хотим подсчитать ячейки с «да» и добавить это к количеству ячеек с «НД».
=ЕСЛИ(СЧЁТЕСЛИМН(H4:H14;"Да")+СЧЁТЕСЛИМН(H4:H14;"НД")=СЧЁТЗ(H4:H14);"Да","Нет")
И если мы хотим использовать синтаксис {...}
, как в вашей первоначальной попытке, нам просто нужно использовать конструкцию SUM(...)
, потому что COUNTIFS
функция с этим {"Yes","NA"}
подходом возвращает массив из двух значений (по одному для каждого возможного совпадения из списка), поэтому нам нужно их сложить.
=ЕСЛИ(СУММ(СЧЁТЕСЛИМН(H4:H14;{"Да";"НД"}))=СЧЁТЗ(H4:H14);"Да";"Нет")
(Третий подход — это просто перефразирование второго подхода.)
Осторожность
Первые два подхода различаются, что может быть существенным образом. Чтобы решить, какой из них лучше для вас, вам придется решить, какой результат вы хотите получить, если есть какие-либо значения за пределами ваших примеров "Да", "Нет" и "NA". В частности, если какая-либо строка имеет неперечисленное значение (например, "xxx"), первый подход приведет к Yes
, тогда как второй и третий подходы приведут к No
.
Ваши требования неоднозначны, и хотя в данном случае это вряд ли станет для вас проблемой, лучше ничего не оставлять на волю случая.