#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
)