Выделение / извлечение строк, состоящих из определенного значения

#excel #excel-formula

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

Вопрос:

Я не уверен, что это можно сделать в Excel, но здесь идет.

Я ищу способ либо извлечь / выделить список OrderID и связанных с ним продуктов, только если в OrderID есть Product «A», игнорируя другие OrderID, у которых нет A.

Я пытался использовать операторы IF для обнаружения продукта «A», но он не смог проверить последующие строки OrderID. Я также думал об использовании Concatenate / Textjoin, но не смог заставить его работать.

Скриншот образца данных:

введите описание изображения здесь

Результат, которого я пытаюсь достичь

Скриншот результирующих данных

Он должен выделять / извлекать только 6613,7557 и 3396 идентификаторов OrderID (вместе с другими значениями продуктов), поскольку эти идентификаторы OrderID имеют продукт «A». В то время как он игнорирует другие идентификаторы заказа, у которых нет продукта «A» (например. 4519,7601,2113,9880)

Отредактировано: прикреплено 2 изображения, чтобы различать образец и результаты

Комментарии:

1. Какая версия Excel у вас есть? Если O365, вы могли бы использовать новые DA-функции, такие как FILTER . Если нет, другой простой способ — преобразовать ваши данные.

2. Откуда они 4519,7601,2113,9880 поступают, как не в вашем списке продуктов?

3. @Harun24HR Извините, я перепутал список примеров (слева) и результаты (справа). Это в столбце B. 4519 (строки 8 и 9), 7601 (строки 10-12), 2113 (строка 15) и 9880 (строка 16). В этих строках нет продукта A. К вашему сведению: я использую O365 🙂

4. Тогда чего вы пытаетесь достичь? Они уже есть в вашем списке желаемых результатов. Эти идентификаторы вы также хотите выделить. Не могли бы вы поместить отдельную картинку с точным выводом.

5. Прикреплено отдельное изображение результатов, которые я ищу. Извините за путаницу ранее.

Ответ №1:

Для выделения используйте приведенную ниже формулу в условном форматировании.

 =AND(ISNUMBER(MATCH($A2,$E$2:$E$10,0)),$B2="A")
  

введите описание изображения здесь

Если вы хотите отфильтровать данные Product A , используйте приведенную ниже формулу.

 =IFERROR(INDEX($A$1:$B$17,AGGREGATE(15,6,ROW($A$1:$A$17)/($B$1:$B$17="A"),ROW(1:1)),COLUMN(A$1)),"")
  

Если у вас есть Office365 , используйте Filter() formula.

 =FILTER(A1:B17,B1:B17="A")
  

Ответ №2:

Если у вас есть O365:

 F2: =FILTER($B$2:$C$17,COUNTIFS($B$2:$B$17,$B$2:$B$17,$C$2:$C$17,"A"))
  

Если у вас более ранняя версия Excel:

 =INDEX(B2:C17,
          -1 AGGREGATE(
                       15,6,
                       1/COUNTIFS($B$2:$B$17,$B$2:$B$17,$C$2:$C$17,"A")*ROW(B2:B17),
                        ROW(INDEX($A:$A,1):INDEX($A:$A,SUM(COUNTIFS($B$2:$B$17,$B$2:$B$17,$C$2:$C$17,"A"))))),
            {1,2})
  

введите описание изображения здесь

Выделение A ‘s может быть выполнено с помощью простого условного форматирования (например, cell equals A )