Страницы: 1
RSS
поиск значения по всей книге и подстановка найденного на листе этой же книги
 
Здравствуйте!
Имеется необходимость ведения таблицы (огромадной, признаю). В нее должны заноситься сведения о всех заключенных контрактах на поставку товаров и выполнение работ, данные о поставках по этим контрактам, сведения об оплате этих поставок. До настоящего времени сведения о поставках руками заносились в 2 таблички - рег А (регистрация актов приемки) и сведения о поставках по Контракту(для удобства для каждого конкретного контракта - свой персональный лист). Хотелось бы сделать так, чтобы данные и сведений о поставках переносились в регистрацию актов приемки, т.к. ручное внесение уже приводило к неточностям, ошибкам. Если ссылаться на одну страницу, то срабатывает простой ГПР, но количество заключенных контрактов заранее точно не определено, как и конкретика по этим контрактам.  Очень большая просьба помочь в решении проблемы, т.к. программиста у нас нет, а моих скромных способностей хватает только на приведенное в примере (часть из того, что есть в примере взято с форума, спасибо авторам). И да, я понимаю, что для подобного неплохо бы создавать базу данных, но институтские воспоминания о Access еще меньшем, чем об EXCEL, там совсем ничего не получилось.  
Изменено: gorln - 27.08.2018 09:17:38 (корректировка)
 
Очень уж запутанная у Вас книга, вероятно, поэтому никто и не ответил. Кроме ГПР есть ещё ИНДЕКС + ПОИСКПОЗ. Это ВПР и ГПР в одном флаконе, причём более гибкие. В примере ГПР нашёл на листе "рег А" и нарисовал свой вариант.

=ИНДЕКС('2019.1'!$4:$6;1;ПОИСКПОЗ('рег А'!$F12;'2019.1'!$2:$2;0))

Эта формула на листе "2019.1" в строке 2 ищет соответствия с ячейкой !$F12 на листе 'рег А', после чего берёт соответствующее значение из строки 1 диапазона $4:$6 на листе "2019.1".

В примере 2 формулы (синяя понятнее, а красная, возможно, быстрее, но не факт). В обеих формулах большой косяк, который будет негативно влиять на взаимодействие - используются строки целиком, вместо них лучше взять какой-нить разумный диапазон (например, вместо $4:$6, $A$4:$AZ$6).
Изменено: Wiss - 27.08.2018 15:46:34
Я не волшебник, я только учусь.
 
Уважаемый Wiss, спасибо, что ответили. Вероятно, я не совсем точно сформулировала то, что мне необходимо (я-то понимаю, чего хочу от формулы, но объяснить не со всем получается.
Давайте попробую объяснить. Проблема в том, что в книге в течение года будут появляться дополнительные листы, их количество будет соответствовать количеству контрактов, заключенных организацией. В целом в таблице будут присутствовать следующие листы:
- на листе инфо будет отражаться только информация о дате заключения, сроке действия, номере контракта, поставщике, цене контракта. Посредством СУММЕСЛИ туда будут подтягиваться сведения о том, на какую сумму контракт исполнен и какую сумму по нему мы уже оплатили
- на листе рег А (это excel вариант обязательного журнала регистрации актов приемки) сведения о том, в какой день по какому контракту от какого поставщика и на какую сумму получены товары. На основе даты поставки и срока оплаты, прописанного в контракте определяется дата, не позднее которой нам необходимо осуществить оплату (если вовремя оплатить не получилось - рассчитывается сумма просрочки)
- лист оплаты нужен для того, чтобы формировать отчет об оплатах. (от нас ежемесячно требуют предоставлять эти сведения (в виде PDF)/ Для того, чтобы освободить себя от лишней работы по набиванию, через СУММЕСЛИМН и ВПР по номеру платежки с листов "Рег А" и "инфо" подтягиваются остальные сведения, которые нам необходимо поставлять
- большое количество листов, по каждому заключенному контракту (сведения о номере, дате контракта и какие товары,в каком количестве и на какую сумму были нам поставлены (необходимость листа вызвана тем, что хитромудрые поставщики так и норовят "накосячить" с ценами, указав цены чуть повыше, чем указано в контракте. Для проверки забиваем количество товара и стоимость считается. сравниваем с тем, что в счете фактуре и накладной. остальные данные просто копируем  в обязательный для формирования акт приемки товаров, работ, услуг. Для того, чтобы сформировать эти листы используются шаблоны - - листы "шабл поставка" и "шабл раб, усл"

Номера актов приемки (Акт №....) уникальные, в течение года может быть только один Акт № 1, только один Акт № 2.... и для  того, чтобы не забивать сведения о приемке дважду появилась у меня идея - заносить сведения о поставках только на лист по контракту, а на листе рег А поставить только номер Акт, и остальные данные подтянутся. Нашла, как сделать это, если ссылаться на на конкретный лист ( в примере 2019.1). Но если листов множество, то как это реализовать - не понимаю. Смутно догадываюсь, что может помочь массив... но я однажды попробовала для решения другой задачи, формула сработала, но как ее растянуть на весь столбец так и не поняла. (на листе рег А ,как в ячейках H8 и H9, но там стоит ссылка на лист 2019.1, а надо. чтобы он искал на всех листах книги). Кажется, опять путано.

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

Буду благодарна за идеи, а лучше примеры, т.к. я вообще никак не программист, а экономист, и если бы мне еще 2 года назад сказали, что буду формировать excel таблицу для аналитики - сильно бы удивилась, а если бы это сказали моему ВУЗовскому преподавателю информатики- он бы решил, что меня с кем то путают.
 
Дело в том, что формулы эксель не очень приспособлены для работы с несколькими листами сразу (я думал, что вообще не приспособлены, но гугл подсказал, что я не прав ссылка). В указанной ссылке говорится, что трехмерные ссылки работают только с ограниченным списком функций и те, которые Вам нужны в этот список не входят.
    Как вариант я написал функцию findSheet, которая возвращает имя листа, в котором в заданной строке встречается искомое значение (пример работы в столбце "дней на оплату").Эту функцию можно использовать внутри функции ДВССЫЛ().  ДВССЫЛ имеет неприятную привычку пересчитываться при любом изменении данных, так что книга может начать тормозить, когда в ней будет много листов.
Изменено: Wiss - 28.08.2018 10:01:34
Я не волшебник, я только учусь.
 
Спасибо, вроде работает.. Попробую разобрать смысл функции, дабы ее пробовать применять в дальнейшем самостоятельно (словарь бы только отыскать, а то функции EXCEL, как говорится, читаю и перевожу со словарем... ;-)...)    
 
gorln, дерзайте, всё обязательно получится.

Лично я обычно сначала пишу формулу, чтобы она работала нормально без учёта разных листов и наворотов с ДВССЫЛ (строчки 16-17)
Потом заменяю ссылки, которые придётся динамически менять на ДВССЫЛ (строчка 20, одно значение)
Потом текст внутри ДВССЫЛ разбиваю на части и заменяю нужную мне часть на формулу или ссылку (строки 21-22)
Я не волшебник, я только учусь.
 
Сделано

Огромное спасибо Wiss за помощь
Страницы: 1
Наверх