Excel — Формула, использующая правила приоритета в зависимости от входных данных диапазона

#excel #excel-formula #excel-2010

#excel #excel-формула #excel-2010

Вопрос:

Вероятно, это простое исправление (хотя я думаю, что это означает, что это, вероятно, не так), поэтому я заранее приношу извинения, если это просто детская игра.

На листе Excel, над которым я работаю, у меня есть диапазон (для этого примера A1: A10), который может содержать одну из 3 переменных (не включая пробелы) — A, B или C.

Мне требуется формула в другой ячейке для просмотра рассматриваемого диапазона и вывода значения на основе следующих правил в этом приоритете:

  1. Если A появляется в любом месте столбца, независимо от других входных данных, отобразите;
  2. Если в столбце отображаются B и C, отобразите;
  3. Если в столбце отображается только B, отобразите B;
  4. Если в столбце отображается только C, отобразите C; и
  5. Если все ячейки в столбце пусты, отобразите пустой

Для правил 1-4 не следует учитывать любые пустые ячейки в столбце. Это следует учитывать только там, где все ячейки пустые, т. Е. правило 5.

Я пробовал формулы IF, но обнаружил, что они учитывают только одну ячейку. Также я попытался использовать SUMPRODUCT вместе с IF, но столкнулся с проблемой. Формула, которую я использовал, была:

 IF(SUMPRODUCT(--(--(A1:A10="A")),"A",IF(SUMPRODUCT(--(A1:A10="B")),IF(SUMPRODUCT(--(A1:A10="C")),"A",IF(SUMPRODUCT(--(A1:A10="B")),"B",IF(SUMPRODUCT(--(A1:A10="C")),"C","")))))
  

Теперь я знаю, что это кажется затянувшимся, но до правила 3 все работает нормально. При попытке использовать правило 4 или 5 формула возвращает только FALSE

Я полностью за то, чтобы вышеупомянутая формула была изменена, чтобы она работала, или за другую формулу полностью, но я пробовал искать везде и ничего не могу найти по этому поводу (хотя это, вероятно, связано с тем, что я неправильно формулирую свой вопрос / поиск).).

Любая помощь была бы высоко оценена. Заранее спасибо!

Ответ №1:

Используя предоставленный вами пример, это даст желаемые результаты:

 =INDEX({"","C","B","A"},MATCH(SUMPRODUCT({3,2,1},--(COUNTIF(A1:A10,{"A","B","C"})>0)),{0,1,2,3}))
  

Ответ №2:

Не самый простой ответ, но он также работает:

 {=IF(SUM(--($A$1:$A$10="A") (($A$1:$A$10<>"A")*(SUM(--($A$1:$A$10="B"))>0)*(SUM(--(A1:A10="C"))>0)))>0,"A",IF(SUM(--($A$1:$A$10="B"))>0,"B",IF(SUM(--($A$1:$A$10="C"))>0,"C",IF(SUM(--(ISBLANK($A$1:$A$10)))=ROWS($A$1:$A$10),""))))}
  

По общему признанию, это не так элегантно, как вышеупомянутое решение.