Страницы: 1
RSS
Сложносочиненная ИНДЕКС-ПОИСКПОЗ, Не удаётся правильно составить формулу
 
Добрый день!
Помогите, пожалуйста разобраться, я или упускаю какую-то функцию, или неверно её применяю (может быть порядок составления нарушен).
Я сделал базу данных по контрактам и хочу сделать отдельный лист, где из БД переносились бы номера действующих контрактов по предмету и адресу.
Месяц уже и так, и эдак верчу-кручу формулу, но то одно, то другое условие не выполняется. Уже даже разложил "по полкам", что хочу получить.
Пока смог прийти к такой формуле:
Цитата
=ЕСЛИОШИБКА(ИНДЕКС(БД!$D$2:$D$25;ПОИСКПОЗ("*******"&$A16&A$1;БД!$C$2:$C$25&БД!$H$2:$H$25&БД!$G$2:$G$25;0));"")
Но она ищет по порядку данные (хотя я из-за этого от ВПР ушёл) и не правильно как-то находит данные, когда несколько адресов.
Вытащил кусок большой таблицы, как пример (в приложении к посту). Лист "БД", как исходная база, Лист "Адрес", как "результат", Лист "Адрес (2), как тестовая.
Буду благодарен за любые рекомендации.
Изменено: Сергей Ост - 26.03.2024 14:33:57
 
Ser4onOK,  Читаем правила, меняем отображаемое имя в профиле.
По вопросам из тем форума, личку не читаю.
 
БМВ, в профиле поправил, но над аватаром в посте осталось Серчонок почему-то...
 
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица2[Контракт];1/(1/МАКС((ЕСЛИОШИБКА(НАЙТИ($A2;Таблица2[Адрес]);0)>0)*(ЕСЛИОШИБКА(НАЙТИ(B$1;Таблица2[Предмет]);0)>0)*(ДЛСТР(Таблица2[Р/н])=7)*СТРОКА(Таблица2[Адрес])))-1);"")
Формула массива.
 
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица2[Контракт];ПОИСКПОЗ(1;
--((ПОИСК([@Адреса];Таблица2[Адрес])*
ПОИСК(Таблица14[[#Заголовки];[Теплоснабжение]];Таблица2[Предмет]))>0)));"")
Изменено: Тимофеев - 26.03.2024 15:56:39
 
МатросНаЗебре, Тимофеев, Спасибо огромнейшее!!!! Всё получилось!!! Теперь, ещё для общего, так сказать, развития, постараюсь разобраться в формулах, как они построены ("1/Макс", "ДЛСТР", "--" и "*" заставляют задуматься =)).
 
МатросНаЗебре, я попытался вставить в гугл таблицу формулу, вот такая получилась:
Код
=ARRAYFORMULA(ЕСЛИОШИБКА(ИНДЕКС('РЕЕСТР'!$H$2:$H$604;1/(1/МАКС((ЕСЛИОШИБКА(НАЙТИ($C2;'РЕЕСТР'!$M$2:$M$604);0)>0)*(ЕСЛИОШИБКА(НАЙТИ(F$1;РЕЕСТР'!$L$2:$L$604);0)>0)*(ДЛСТР('РЕЕСТР'!$F$2:$F$604)=7)*СТРОКА('РЕЕСТР'!$M$2:$M$604)))-1);""))
но упорно вылезает ошибка, мол не хватает закрывающих скобок... И при наведении курсора на "части" формул (когда вылезают подсказки), будто бы "разрыв" виден перед началом функции НАЙТИ.
Хотя, разложил уже всё по формулам, всё везде закрываются.
Не подскажите ещё раз, в чём тут может быть ошибка?
Может быть гугл не может применить несколько функций в формуле? Т.к. в локальном экселе всё работает на ура!
Изменено: Сергей Ост - 27.03.2024 11:50:13
 
Кавычка пропущена:
НАЙТИ(F$1;РЕЕСТР'!$L$2:$L$604)
 
andypetr, Точно!!!! Спасибо большое! Сработало!  :*
:oops: я слепой -_-
 
Сергей Ост, и ++
Однако же по Пехотному 8 есть 2 договора Оказание услуг холодного водоснабжения и водоотведения
Один на "отдельный" Пехотный, а второй ан Пехотный в составе
пер. Пехотный 1-й, д. 8, ул. Барышиха, д. 33А, стр. 1, стр. 2, ул. Береговая, д. 4, корп. 10, ул. Вилиса Лациса, дв. 8, ул. Габричевского, д. 1, ул. Генерала Глаголева, д. 10, корп. 3, ул. Лодочная, д. 12, ул. Лодочная, д. 31,
соотв 3074514 и 3074512
 
Сергей, Спасибо, увидел, исправил.
Это "рукотворная" ошибка в ходе заполнения БД произошла, должен быть только отдельный. Интересно, почему при дублировании формула взяла именно второй вариант, а не первый.
Формула, кстати, сразу синхронно и в Адреса перенесла (исправила) сразу нужный номер.
Сижу, не нарадуюсь никак на результат =)
Сам себе придумал задачу и не мог решить месяц. Ещё раз всем большое спасибо за помощь!
Кстати, почерпнул для себя на форуме ещё несколько интересных идей. Спасибо, что вы есть  8)  
Изменено: Сергей Ост - 27.03.2024 16:01:31
 
Сергей Ост, Да и вообще названия объектов написаны то с ".", то без нее и т.д.
А остальные адреса в скученном виде?
и ул Габричевского д 1 тоже 2 договора
Как правильно то? Можно же и все договоар по каждому адесу вывести (в случае множественности) Хотя такого наверное не бывает по одному виду обслуживания
Можно и в PQ сделать
Список по идее наверное вот такой должен быть (если все разделить в ячейках со скученными данными
Изменено: Сергей - 27.03.2024 16:37:00
 
Сергей, в принципе, так и есть, адресов в итоговом варианте около двухсот штук.
Просто выдержку в тестовом файле делал в обратном порядке, нежели в большой таблице, поэтому адреса с ошибками перекочевали =(
На счёт "точек", интересная идея. Я сокращал улицы и дома, чтобы уменьшить объём текста, т.к. есть контракты, где и 20 адресов в ячейке.
Была ещё идея сделать адреса не с "ул., б-р, пркт. и т.д.", а с названий, т.к. при применении скрипта для множественного списка идёт фильтрация по первым буквам, а улица это или бульвар, на память не запомнишь и иногда приходится поискать. Но это уже вопрос будущего, т.к. очень уж не хочется пока переписывать опять все адреса, чтобы опять таки не плодить новых ошибок с дублированием.
Страницы: 1
Наверх