Я унаследовал эту структуру данных. У меня есть куча продуктов и информация о поставщиках, выложенная так:
Supplier Order Number Name Cost
ACME 00123 A 1
ACME 00321 B 2
ACME 20798 C 3
ACME 11010 D 4
ACME 32333 E 5
ACME 20001 F 6
Babar 20001 G 7
Babar 54687 H 8
Babar 69441 I 9
Babar 65777 J 10
Я собираюсь ссылаться на эти данные с других листов. Очевидно, что использование vlookup только для одного номера заказа будет ненадежным без проведения различий между поставщиками.
Мое первое решение работает локально, но я не могу заставить его работать между книгами. Я установил именованный диапазон на приведенном выше листе, используя INDIRECT, MATCH и COUNTIF, чтобы диапазоны увеличивались по мере добавления новых элементов.
В этом примере у меня Range_ACME определен как:
= INDIRECT("B" и MATCH(Лист1!$ A $ 2, Лист1!$ A:$ A, 0)& ":D" &(MATCH(Лист1!$ A $ 2, Лист1!$ A:$ A, 0)+COUNTIF(Лист1!$ A:$ A, Лист1!$ A $ 2)-1))
(На самом деле, я использую другую именованную ячейку в качестве значения поиска MATCH, но я упростил ее для целей тестирования.) Так что я могу найти стоимость товара ACME 00123 примерно так:
= ВПР ("00123", Range_ACME, 2, ложь)
При попытке использовать эти диапазоны в другой книге я получаю сообщение об ошибке, что диапазон недопустим. Если я использую более простой именованный диапазон без всякой косвенной дикости, то он работает просто отлично. Здесь Range_ACME_Simple просто
= Лист1!$ B $ 2:$ D $ 7
Я понимаю, что для этого необходимо, чтобы рабочие книги были открыты одновременно. Есть ли другой способ определения динамических диапазонов, или я должен просто объединить имена поставщиков с номерами заказов?