Excel Match, Index VLOOKUP Несколько критериев - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь заполнить ячейку и отображать значение, только если оно еще не существует.Если оно существует, отобразите другое значение.

... Но я не могу понять, как это сделать.

В настоящее время у меня есть следующая формула, помещенная в ячейки в столбце E

=INDEX(config!H2:H20,
MATCH(1,
(F4=config!F2:F20)*(VLOOKUP(D4,config!C2:D20,2,FALSE)=config!G2:G20),0))

Это соответствует некоторым другим критериям, как вы можете видеть здесь.Тем не менее, вы также можете увидеть, что значение 7 отображается дважды.Я хочу, чтобы он не отображал какие-либо используемые значения.

enter image description here Итак, я добавил дополнительный столбец под названием «Комната в использовании» на листе конфигурации, гдеданные поступают из ... в этом столбце есть некоторые формулы для проверки, используются ли значения

=NOT(ISERROR(MATCH(H2,Sheet1!E2:E41,0)))

Вы можете увидеть это в действии здесь: enter image description here

Итак, возвращаясь к моему листу 1, я думаю, что эта формула нуждается в другом условии, чтобы сказать: если номер используется == FALSE, тогда сделайте

=INDEX(config!H2:H20,
MATCH(1,
(F4=config!F2:F20)*(VLOOKUP(D4,config!C2:D20,2,FALSE)=config!G2:G20),0))

else, если все комнаты TRUE, тогдаотобразить «Нет в наличии»

Я пытался использовать:

{=INDEX(config!H2:H20,MATCH(1,(F5=config!F2:F20)*("FALSE"=config!J2:J20)*(VLOOKUP(D5,config!C2:D20,2,FALSE)=config!G2:G20),0)) }

, но безрезультатно ...

Возможно ли это даже в формуле Excel или мне нужно будетиспользовать VBA?

Я приложил свой документ Excel здесь: https://www.dropbox.com/s/crmbbp8esdvnv29/Book1.xlsm?dl=0

1 Ответ

2 голосов
/ 16 апреля 2019

Чтобы достичь совпадений первый, второй, третий и т. Д. , вам нужно переключиться на МАЛЕНЬКИЙ (ЕСЛИ (... или СМЕНИТЬ), чтобы вернуть соответствующие номера строк в ИНДЕКС, где kАргумент предоставляется прогрессивным COUNTIF или COUNTIFS уже использованных значений на локальном листе.

В то время как n чрезмерно сложная единичная формула может быть в конечном счете возможной, использование двойногопоиск соответствия столбца D для конфигурации! C: C для возврата значения в конфигурации! D: D может использовать столбец «помощник» для облегчения условного подсчета.

Поместите эту формулу в M2 (опционально используйте пользовательский номерформат ;;;), затем перетащите вниз через M2: M20.

=VLOOKUP(D2, config!C:D, 2, FALSE)&F2

Формула в E2: E20 теперь,

=INDEX(config!H:H,
       AGGREGATE(15, 7, ROW($2:$20)/((config!F$2:F$20=F2)*(config!G$2:G$20=VLOOKUP(D2, config!C:D, 2, FALSE))), 
       COUNTIF(M$2:M2, VLOOKUP(D2, config!C:D, 2, FALSE)&F2)))

Не удивляйтесь, получив ошибкув E16. Это будет исправлено, как только вы исправите опечатку в D16. Все другие ошибки #NUM! возникают, когда у вас заканчиваются возможные совпадающие значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...