1

Я хочу проверить, какие продукты (перечислены в строках) произведены какой компанией (перечислены в заголовках столбцов), чтобы заполнить таблицу, подобную этой

           Company A  Company B Company C
Product 1 
Product 2
Product 3

Необработанные данные хранятся в отдельном листе Excel, который разработан следующим образом:

Company A Product 3 Product 5 Product 7 Product 10 Product 11
Company B Product 1 Product 7
Company C Product 1 Product 8 Product 9

Поэтому мне сначала нужно было бы дать команду Excel выбрать правильную строку (= компания), а затем проверить, содержит ли она искомый продукт. Я не думаю, что VLOOKUP в его базовой форме может помочь здесь, так как он может только возвращать значение определенного столбца. Я знаю, что для этого должно быть простое решение, пожалуйста, дайте мне знать, если у вас есть идея! Спасибо большое за вашу помощь!

2 ответа2

0

Пара предложений. Сначала нужно перевести данные в более удобный формат, а затем перейти по этой ссылке, где вы найдете макрос, который изменяет данные в формат.

Company  Product
A        Product 3
A        Product 5
A        Product 7
B        Product 1
B        Product 7
etc

Тогда вы могли бы использовать сводную таблицу.

В противном случае вы можете сделать это с помощью функции. Эта функция находится в ячейках B9:D19 на скриншоте ниже.

=IFERROR(--MATCH($A9,OFFSET($1:$1,MATCH(B$8,$A$2:$A$4,0),0),0)>0,"")

Мой макет показан ниже, вам нужно изменить диапазоны, чтобы они были похожими. Я был бы рад предоставить дополнительную информацию о функции, если вам это требуется.

Гордон

0

Это сработало для меня:

=IFERROR(MATCH($A15,OFFSET($A$1,MATCH(B$14,$A$1:$A$6,0)-1,0,1,255),0),"")

Где ссылки на ячейки были:

=IFERROR(
  MATCH([Product 1 in report],
        OFFSET([Company A in raw table],
               MATCH([Company A in report],
                     [column holding company names],
                     0)-1,
               0,
               1,
               [max width of raw table]),
        0),
  "")

Вы можете добавить в:

=IFERROR(IF(MATCH($A15,OFFSET($A$1,MATCH(B$14,$A$1:$A$6,0)-1,0,1,255),0)>0,"X"),"")

чтобы сделать это положить X там, где были совпадения вместо чисел.

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