В Range I5:I8
я хочу выбрать соответствующее значение из Column A
на основе числа в Range H5:H8
и столбца в Cell H2
.
В настоящее время я пытаюсь использовать эту функцию VLOOKUP
:
=XLOOKUP(H6,$F$1:$F$9,$A$1:$A$9,NA(),0)
Однако, как видите
Column F
фиксирован, но он должен быть гибким в зависимости от ввода в Cell H2
и
если число появляется несколько раз в Range H5:H8
(в этом примере 150), формула отображает только первый результат (в этом примере только велосипед B), но она должна отображать все результаты.
Как мне его изменить, чтобы он работал?
Попробуйте использовать следующую формулу:
=FILTER(A3:A9,1-ISNA(XMATCH(CHOOSECOLS(E3:F9,XMATCH(H2,E1:F1)),H5:H8)))
Или,
=FILTER(A3:A9,1-ISNA(XMATCH(XLOOKUP(H2,E1:F1,E3:F9,""),H5:H8)))
Или,
=FILTER(A3:A9,COUNTIF(H5:H8,XLOOKUP(H2,E1:F1,E3:F9,"")))
@Мичи, извини, я не буду на это отвечать, потому что это не входило в вопрос. Поскольку вы оставили комментарий здесь, я тоже прокомментирую то же самое здесь, надеюсь, это поможет, вот что вы можете сделать: =IFERROR(SORTBY(FILTER(A3:A9,COUNTIF(H5:H8,XLOOKUP(H2,E1:F1,E3:F9,"")),""),H5:H8),"")
Кроме того, говоря, что это работает в очень конкретном примере, если все условия соблюдены, приведенные выше формулы определенно должны работать. Нигде в посте не упоминалось, что порядок будет причудливый или случайный! И это довольно распространенная ситуация: XLOOKUP()
нельзя вернуть несколько записей для уникального искомого значения. Да, можно и не так, но и по-сложному, с хелперами, но для возврата по нескольким записям есть специальные функции. например FILTER()
или INDEX()
+AGGREGATE()
/SMALL()
для более старых версий
Я открыл для этого новый вопрос: stackoverflow.com/questions/78677150/…
@Michi Вы открыли, и я опубликовал ответ !!
Спасибо за ответ. Это работает в очень конкретном примере выше. Однако когда я меняю порядок значений в H5:H8, например, на 980,790,150,150, порядок результата остается таким, как на вашем снимке экрана. Можно ли также настроить порядок результатов в соответствии со значениями в H5:H8?