у меня была проблема с функцией if с большим условием и функцией соответствия. Могу ли я иметь решение?

В настоящее время я пытаюсь использовать эту формулу массива, но не могу получить никакого результата.

{= IF(MATCH(A1; '6(AKK)'!$ A $ 1:$ A $ 100); "AKK";

IF(MATCH(A1; '6(K3)'!$ A $ 1:$ A $ 100); "К3";

IF(MATCH(A1; '6(Kesling)'!$ A $ 1:$ A $ 100); "Кесехатан Лингкунган";

IF(MATCH(A1; '6(Kespro)'!$ A $ 1:$ A $ 100); "Kesehatan Reproduksi";

IF(MATCH(A1; '6(Promkes)'!$ A $ 1:$ A $ 100); "Promosi Kesehatan";

IF(MATCH(A1; '6(EPID)'!$ A $ 1:$ A $ 100); "Epidemiologi";

IF(MATCH(A1; '6(кызы)'!$ A $ 1:$ A $ 100); "Gizi Kesehatan Masyarakat"; "Gagal")))))))}

Например, данные в основном листе выглядят так, как показано ниже.

      A                B
  1. R.15.01.001 (Это клеточная формула)

  2. R.15.01.002

  3. R.15.01.003

Например, данные в листе «6(АКК)»

      A

1 Р.15.01.001

2 Р.15.01.003

3 Р.15.01.007

4 и т.д ...

Например, данные в листе «6(K3)»

      A

1 Р.15.01.002

2 Р.15.01.004

3 Р.15.01.005

4 и т.д ...

Каждый лист выглядит так без одинакового номера на каждом листе 6. Мне нужно это для какой-то задачи. и я надеюсь, у меня было решение здесь.

1 ответ1

0

Есть два способа сделать это.

Вариант 1 (неуклюжий и менее сложный, но, возможно, легче следовать)

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

Я дал вам пример для первых 3 листов здесь:

=IF(ISNA(MATCH(A2,'6(AKK)'!$A$1:$A$100,0)),IF(ISNA(MATCH(A2,'6(K3)'!$A$1:$A$100,0)),IF(ISNA(MATCH(A1,'6(KESLING)'!$A$1:$A$100)),"[See Note]","Kesehatan Lingkungan"),"K3"),"AKK")

Примечание - продолжайте встраивать операторы IF(ISNA(MATCH ... здесь. На последнем месте "Гагал" в этом месте.

Как видите, это будет довольно долго и безобразно. Все же это будет работать.

Наконец, введите это обычную формулу, а не формулу массива.

Вариант 2 (более сложный и эффективный, требует немного больше начального ввода)

  1. Определите именованный диапазон как sList с формулой =MID(TRANSPOSE(GET.WORKBOOK(1))&T(NOW()),FIND("]",TRANSPOSE(GET.WORKBOOK(1))&T(NOW()))+1,255) (подробнее о GET.WORKBOOK)
  2. Установите справочную таблицу с именами листов с соответствующими возвращаемыми значениями и определите этот диапазон с именем return_values.

  1. Введите эту формулу (в виде массива) в ячейку B1 =VLOOKUP(INDEX(sList,MATCH(TRUE,COUNTIF(INDIRECT("'"&sList&"'!$A$1:$A$100"),A1)>0)),return_value,2,0) и перетащите вниз строки для каждого значения в столбце A

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .