Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Вопрос по обращению к закрытому файлу с помощью =ИНДЕКС()

Автор kim k., 29.11.2011, 12:11

« назад - далее »

kim k.

Добрый день, форумчане!

вопрос такого плана-- имеем первый файл, куда производится отбор данных с помощью =ИНДЕКС(). Имеем второй, из которого =ИНДЕКС() тянет данные в зависимости от запроса. Когда второй файл закрыт, данные в первый не затягиваются.
Вопрос о том, можно ли каким-то образом обмануть =ИНДЕКС()?

Спасибо!

_Boroda_

2 варианта
1. Преобразуйте "таблицу" в файле Q3(2) в диапазон
2. Создайте "таблицу" в файле Q3(1) в диапазоне А2:В5
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

kim k.

Спасибо за ответ, _Boroda_

при первом варианте мы потеряем часть функционала =ПОИСКПОЗ(), вложенной в =ИНДЕКС(). Т.е. мы не сможем обращаться к диапазону поиска Заголовки таблицы (#Заголовки). Или будем вынуждены обращаться к столбцам таблицы только задавая их явно (1 или 2...), что может повлечь проблемы -- например, при добавлении новой колонки перед той, к которой мы обращаемся.

при втором, предложенном вами варианте все конечно ок, кроме того, что нам нужно все исходные таблицы сначала затянуть в наш файл. Т.е. если их будет много и с большим объемом данных, файл распухнет как в объеме так и по структуре... Конечно, все ненужные таблицы можно прятать в скрытых листах... ну, возможно, как крайний вариант это и подойдет.

Вот например здесь http://planetaexcel.ru/tip.php?aid=94 функцию =СУММПРОИЗВ() сумели заставить обратиться к закрытому файлу... я подумал, нет ли такой же уловки для =ИНДЕКС() ?

_Boroda_

1) поиск по заголовкам можно просто сделать с запасом. Столбцов на 30
2) я вообще не понял, о чем Вы пишете. Ничего никуда затягивать не нужно. В файле Q1 выделяем ячейки А2:В5 - Вставка - Таблица - ОК. Вы мой вложенный файл смотрели? Переделайте там ссылки на свой файл Q2 и этот Q2 закройте. Все работает прекрасно
Короче - из закрытых файлов ИНДЕКС (ПОИСКПОЗ( тянется только если в обеих книгах или диапазоны, или "таблицы"
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

С.М.

Цитата: kim k. от 29.11.2011, 12:55
при первом варианте мы потеряем часть функционала =ПОИСКПОЗ(), вложенной в =ИНДЕКС(). Т.е. мы не сможем обращаться к диапазону поиска Заголовки таблицы (#Заголовки). Или будем вынуждены обращаться к столбцам таблицы только задавая их явно (1 или 2...), что может повлечь проблемы -- например, при добавлении новой колонки перед той, к которой мы обращаемся.
? :
Эксель изощрён, но не злонамерен.

С.М.

Эксель изощрён, но не злонамерен.

kim k.

#6
Цитата: _Boroda_ от 29.11.2011, 13:21
2) я вообще не понял, о чем Вы пишете. Ничего никуда затягивать не нужно. В файле Q1 выделяем ячейки А2:В5 - Вставка - Таблица - ОК. Вы мой вложенный файл смотрели? Переделайте там ссылки на свой файл Q2 и этот Q2 закройте. Все работает прекрасно
Короче - из закрытых файлов ИНДЕКС (ПОИСКПОЗ( тянется только если в обеих книгах или диапазоны, или "таблицы"
Вы написали преобразовать диапазон, куда я извлекаю данные, в таблицу + в формулах вы обратились к диапазону в исходном файле, а не к исходной таблице.
Если сделать таблицу в обоих файлах, и обращаться именно к элементам исходной таблицы (напр. #Заголовки), а не к диапазону листа книги (А5:Q5 напр.) то данные все так же не затягиваются.
Возможно я все еще не понял вашу мысль.

kim k.

С.М., вы привели два варианта того, как обращаться к данным в другом файле и оба работают. Но я совершенно не понял как ((
вы не могли бы подсказать ключевые слова, по которым можно найти в Гугле инфу о том, что вы сделали? Если DataTable это пользоватльская функция, которую вы задали, она ведь должна отображаться в проектах VBA, верно? Однако для этого файла они чисты...
Простите, что достаю вопросами, мне хочется разобраться. В конце-концов, учиться никогда не поздно)
спасибо

С.М.

Цитата: kim k. от 30.11.2011, 11:47
Если DataTable это пользоватльская функция, которую вы задали, она ведь должна отображаться в проектах VBA, верно?
Не, DataTable - это именованная формула (см. диспетчер имён):
в первом варианте ссылка на адрес диапазона таблицы в книге с исходными;
во втором ссылка на ИМЯ диапазона таблицы в исходняке (Табл.1).
Второй лучше - можно в исходную таблицу добавлять строки и столбцы (или удалять).
Эксель изощрён, но не злонамерен.