Страницы: 1
RSS
Повторное подтягивание по условиям без дубликатов
 
Коллеги, добрый день,

Подскажите, пожалуйста.
Есть массив данных, несколько столбцов, в последнем из которых хранятся уникальные ключи. Их нужно подтянуть в отчет.
Как делаю сейчас: с помощью индекса и поискпоза подтягиваю ключи по четырем скомпилированным условиям (номер, дата, количество, краткое описание).

В чем проблема: теоретически (и даже практически) бывает так, что компиляция этих четырех условий в источнике данных встречается несколько раз. В этом случае подтягивается первый обнаруженный ключ. А надо, чтобы один ключ подтянулся лишь раз, само собой, туда, куда надо.

Пример прикладываю.

P.S. Пытался сделать как здесь, но получилось коряво - при сортировке "оригинала" ключи пересчитывались, и первый ключ всегда был в шапке.
Изменено: Framed - 19.07.2019 13:43:57 (Перезалил пример.)
 
Framed, где желаемый результат?  
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, желаемый результат: чтобы там, где выделено желтым на листе "Оригинал" ключи подтянулись не одинаковые, а разные, так, как на листе "Источник". Перезалью пример сейчас. UPD: перезалил.
Изменено: Framed - 19.07.2019 13:44:35
 
Framed, в F2 и протянуть вниз, если правильно понял.
Код
=ИНДЕКС(Источник!$E$2:$E$19;ПОИСКПОЗ(1;ИНДЕКС((СЧЁТЕСЛИ(Оригинал!$H$1:H1;Источник!$E$2:$E$19)=0)/((Источник!$A$2:$A$19=Оригинал!$A2)*(Оригинал!$B2=Источник!$B$2:$B$19)*(Оригинал!$C2=Источник!$C$2:$C$19)*(Оригинал!$D2=Источник!$D$2:$D$19));0);0))
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
Оригинал!$H$1:H1
А здесь точно этот диапазон? В примере там пустые ячейки..
 
Mershik, разобрался в формуле вроде, но у меня все равно подтягивает одинаковые ключи.
 
Офф.
Цитата
Framed написал: теоретически (и даже практически) бывает так, что компиляция этих четырех условий в источнике данных встречается несколько раз
вот от этого нужно избавляться в принципе. Введите пятый параметр(какой нибудь Простоключ1), но запись в Источнике должна быть уникальной, тогда и Ваши Суперключи будут уникальными. Избежите головной боли в будущем.
Это стандартные требования к Базам данных
Согласие есть продукт при полном непротивлении сторон
 
Sanja,  :) уже написал заявку в Индию. Будь там уникальный индекс, я бы давно уже счастлив был ...
 
Framed, да там была опечатка так как делал в файле..в файле вроде не подтягивает повторов...
Не бойтесь совершенства. Вам его не достичь.
 
Framed, да там была опечатка так как делал в файле..в файле вроде не подтягивает повторов...
Изменено: Mershik - 19.07.2019 14:58:08
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Framed написал:
бывает так, что компиляция этих четырех условий в источнике данных встречается несколько раз.
Если я правильно понял суть проблемы, то решить ее можно добавление ключу (если он целочисленный) уникальной дробной части (например на базе частного от деления номера строки на заведомо большое число (желательно степень двойки)). Если же ключ текстовый, то на базе того же номера строки можно формировать уникальное окончание ключа...
 
IKor, то есть я должен и в источнике, и в оригинале:

1. Все имеющиеся номера разделить на какое-нибудь огромное число, фиксированное;
2. Дробную часть этого числа, ну допустим, поместить в соседний столбец;
3. Эти числа и будут моими ключами

Верно?

UPD: Одно но - номера строка ведь могут не совпадать.. Соответственно, ключи по разному распределятся в источники и в оригинале => данные подтянутся неверно.
Изменено: Framed - 19.07.2019 15:50:26
 
Framed,
Простите за задержку с ответом.

Нет: достаточно добавить еще один вспомогательный столбец (зато для каждого комплекта условий!), в который будут вынесены только нужные значения (подходящие по условию), состоящие из числового ключа и уникальной дробной части (на базе отношения номера строки и заведомо большего числа).
Тогда в другую таблицу можно подтягивать только строки, подпадающие под комплект условий и имеющие уникальный ключ, что сильно упрощает сортировку данных в другой_таблице :)
Причем из уникальной части ключа можно выдергивать обратно номер строки первой таблицы (обращаю внимание на ошибки вычислений с числами с плавающей запятой! - используйте округление или делите на степени двойки), что позволит использовать альтернативный ВПРу / ИНДЕКСу+ПОИСКПОЗу способ получения данных из первой таблицы во вторую.

P.S. Если Вам требуется обрабатывать больше одного комплекта условий единовременно, то вспомогательный столбец удобнее формировать не в реальных ячейках листа, а виртуально - добро пожаловать в мир функций_массива!
Страницы: 1
Наверх