Прочитав несколько постов на этом и других форумах, не добившись успеха и не обнаружив схожих проблем, я решил попытать счастья с собственным постом. Я постараюсь объяснить проблему в меру своих возможностей без картинок из excel. Надеюсь, вы поймете.

У меня есть два листа.

Лист 1

ProductID | Period |  Comment 
   123      2.test   This is bad
   524      2.test   This is bad
   123      3.test   This is bad
   123      3.test   This is bad
   123      4.test   This is good
   123      4.test   This is good

Лист 2

   Comment    | ProductID
 This is bad       123

То, что я хочу сделать, это получить комментарий от Sheet1 на основе ProductID из Sheet2. Тем не менее, я хочу комментарий только в том случае, если число в столбце периода больше 3. Например, «2.test» не в порядке, но «4.test» в порядке.

Моя текущая формула DAX (расположена в столбце « Комментарий» на листе 2) описана ниже. Стоит упомянуть, поскольку из моей иллюстрации листов не ясно, является ли B2 ячейкой, содержащей 123 в столбце ProductID в Sheet2.

=IF(LEFT(VLOOKUP(B2;Sheet1!$A$1:$C$10;2;FALSE))>3;VLOOKUP(B2;Sheet1!$A$1:$C$10;3;FALSE);x)

Эта формула работает только на полпути. Условие в формуле IF работает. Тем не менее, «значение / действие, если истина» - это та часть, с которой я столкнулся. После нахождения правильного productID, где «X.test» больше 3, я хочу получить комментарий к этой строке. В настоящее время я снова использую VLOOKUP, но при этом будет найден только комментарий, связанный с первым идентификатором продукта, который он найдет, а не если период в той же строке больше 3.

Результат, который я ищу, это "Это хорошо" в Sheet2 в столбце « Комментарий».

Я пытался использовать матч, строку и индекс. Однако комбинация между ними может быть неправильной. Решение может быть прямо перед моими глазами, даже не осознавая этого.

Если дело неясно, пожалуйста, дайте мне знать. Заранее спасибо!

1 ответ1

0

Я добавил IFERROR на случай, если VLOOKUP не найдет ID. Как утверждает @Alex M, вы пропустили количество возвращаемых символов.

if(left(iferror(vlookup(B2;Sheet1!$A$1:$C$10;2;0);1);1)>3;vlookup(B2;Sheet1!$A$1:$C$10;2;0);x)

Надеюсь, что это помогает Ура

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