_Boroda_, можете кратко описать первую формулу. Хотелось бы осознанно и в других задачах использовать такое решение.
В описании функции ПРОСМОТР требуется упорядоченность просматриваемого вектора. Перед вставкой формул я отсортирую таблицу по возрастанию фамилий. Но поскольку много фамилий в исходном списке с ошибками, то им не будет найдено соответствующее id. Во многих фамилиях ошибки очевидны, и после внесения правок список стает неупорядоченным. А вносить правки после вставки формул удобнее, т.к. не нужно перечитывать те фамилии, id которых заполнился с помощью формул. Можно отключить применение формул, внести правки и снова включить, но в неправильной фамилии может быть несколько вариантов правильной и сразу не будет видно ту ли именно фамилию получили.
Во второй формуле наверно А2 нужно заменить на А19
_Boroda_, можете кратко описать первую формулу. Хотелось бы осознанно и в других задачах использовать такое решение.
В описании функции ПРОСМОТР требуется упорядоченность просматриваемого вектора. Перед вставкой формул я отсортирую таблицу по возрастанию фамилий. Но поскольку много фамилий в исходном списке с ошибками, то им не будет найдено соответствующее id. Во многих фамилиях ошибки очевидны, и после внесения правок список стает неупорядоченным. А вносить правки после вставки формул удобнее, т.к. не нужно перечитывать те фамилии, id которых заполнился с помощью формул. Можно отключить применение формул, внести правки и снова включить, но в неправильной фамилии может быть несколько вариантов правильной и сразу не будет видно ту ли именно фамилию получили.
Во второй формуле наверно А2 нужно заменить на А19SergeyKorotun
Pelena, любой вариант решения подойдет. Но вы наверно неверно поняли условие задачи. Есть большая база данных (зеленая таблица, 30 000 записей). Одно и то же ФИО там встречается много раз, но это разные люди (у каждого уникальное id). Дали список из 1500 фамилий (желтая таблица). В нее надо для каждого ФИО из зеленой таблицы подтянуть все id.
Pelena, любой вариант решения подойдет. Но вы наверно неверно поняли условие задачи. Есть большая база данных (зеленая таблица, 30 000 записей). Одно и то же ФИО там встречается много раз, но это разные люди (у каждого уникальное id). Дали список из 1500 фамилий (желтая таблица). В нее надо для каждого ФИО из зеленой таблицы подтянуть все id.SergeyKorotun
krosav4ig, я наверно плохо сформулировал условие задачи. Переформулировал в предыдущем сообщении. Когда то я задавал существует ли в екселе формулы наподобии ранжирующих в оракле, ответ тогда не получил. А вы сегодня аналогичную функцию применили: счетели.
PS решение в столбик будет более удобным, т.к. потом по id нужно будет подтягивать и другие данные.
krosav4ig, я наверно плохо сформулировал условие задачи. Переформулировал в предыдущем сообщении. Когда то я задавал существует ли в екселе формулы наподобии ранжирующих в оракле, ответ тогда не получил. А вы сегодня аналогичную функцию применили: счетели.
PS решение в столбик будет более удобным, т.к. потом по id нужно будет подтягивать и другие данные.SergeyKorotun
Есть большая база данных (зеленая таблица, 30 000 записей). Одно и то же ФИО там встречается много раз, но это разные люди (у каждого уникальное id). Дали список из 1500 фамилий (желтая таблица). В нее надо для каждого ФИО из зеленой таблицы подтянуть все id.
Есть большая база данных (зеленая таблица, 30 000 записей). Одно и то же ФИО там встречается много раз, но это разные люди (у каждого уникальное id). Дали список из 1500 фамилий (желтая таблица). В нее надо для каждого ФИО из зеленой таблицы подтянуть все id.
Объяснялка для ПРОСМОТР Давайте посмотрим на несколько выдержек из справки: 1. "Если функции ПРОСМОТР не удается найти искомое_значение, то в просматриваемом_векторе выбирается наибольшее значение, которое меньше искомого_значения или равно ему."; 2. "Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания:".
Теперь рассмотри кусок формулы -1/($H$2:$H$8=$A2)/ЕНД(ПОИСКПОЗ($I$2:$I$8;$A2:A2;)). а) $H$2:$H$8=$A2 - если равно, то ИСТИНА, если не равно, то ЛОЖЬ. б) ПОИСКПОЗ(...) - если нашел то, что слева в заданном массиве ID, то какое-то число, если не нашел - ошибка Н/Д. ЕНД преобразует полученное ПОИСКПОЗом в ИСТИНА, если ПОИСКПОЗ дает Н/Д и ЛОЖЬ в остальных случаях. в) минус единица, деленная на а) и деленная на б) даст нам или ошибки деления на ноль (если хотя бы что-то из а) или б) равно ЛОЖЬ), или какие-то отрицательные числа. Нам сейчас без разницы, что за числа, нам важно, что они отрицательны. г) ПРОСМОТР(;... можно перевести на нормальный язык как ПРОСМОТР(0;..., следовательно, мы ищем ноль в массиве из пункта в) - массиве из отрицательных чисел и ошибок. Ошибки не считаются вообще в данном случае, следовательно, имеем массив отрицательных чисел. Ноль мы там никак не сможем найти - он заведомо больше любого отрицательного числа. А теперь смотрим на цитату 2. - по умолчанию полагается, что самое последнее значение - это самое большое значение (массив-то упорядочен по возрастанию). Теперь смотрим на цитату 1. и п. г) и делаем вывод, что нам покажут то значение, которое находится самым последним из удовлетворяющих условиям пунктов а) и б).
Объяснялка для ПРОСМОТР Давайте посмотрим на несколько выдержек из справки: 1. "Если функции ПРОСМОТР не удается найти искомое_значение, то в просматриваемом_векторе выбирается наибольшее значение, которое меньше искомого_значения или равно ему."; 2. "Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания:".
Теперь рассмотри кусок формулы -1/($H$2:$H$8=$A2)/ЕНД(ПОИСКПОЗ($I$2:$I$8;$A2:A2;)). а) $H$2:$H$8=$A2 - если равно, то ИСТИНА, если не равно, то ЛОЖЬ. б) ПОИСКПОЗ(...) - если нашел то, что слева в заданном массиве ID, то какое-то число, если не нашел - ошибка Н/Д. ЕНД преобразует полученное ПОИСКПОЗом в ИСТИНА, если ПОИСКПОЗ дает Н/Д и ЛОЖЬ в остальных случаях. в) минус единица, деленная на а) и деленная на б) даст нам или ошибки деления на ноль (если хотя бы что-то из а) или б) равно ЛОЖЬ), или какие-то отрицательные числа. Нам сейчас без разницы, что за числа, нам важно, что они отрицательны. г) ПРОСМОТР(;... можно перевести на нормальный язык как ПРОСМОТР(0;..., следовательно, мы ищем ноль в массиве из пункта в) - массиве из отрицательных чисел и ошибок. Ошибки не считаются вообще в данном случае, следовательно, имеем массив отрицательных чисел. Ноль мы там никак не сможем найти - он заведомо больше любого отрицательного числа. А теперь смотрим на цитату 2. - по умолчанию полагается, что самое последнее значение - это самое большое значение (массив-то упорядочен по возрастанию). Теперь смотрим на цитату 1. и п. г) и делаем вывод, что нам покажут то значение, которое находится самым последним из удовлетворяющих условиям пунктов а) и б)._Boroda_
Давайте посмотрим на несколько выдержек из справки:
Распечатал, вечером дома почитаю, надеюсь разберусь. В будущем буду использовать ваше решение. А пока, используя вариант krosav4ig, создам сводную таблицу из справочной базы (зеленой, для каждого ФИО получу в соседних колонках все ID), а затем несколькими простыми ВПРами подтяну все ID в желтую таблицу.
Давайте посмотрим на несколько выдержек из справки:
Распечатал, вечером дома почитаю, надеюсь разберусь. В будущем буду использовать ваше решение. А пока, используя вариант krosav4ig, создам сводную таблицу из справочной базы (зеленой, для каждого ФИО получу в соседних колонках все ID), а затем несколькими простыми ВПРами подтяну все ID в желтую таблицу.SergeyKorotun
Подскажите, в krosav4ig в сводной таблице в названиях строк стоят FIO, в названиях столбцов - №, а значения заполнены значениями ID. При этом в списке полей перед полем ID тычка стоит, а в окне "значения" этого поля нет. Когда я в своей таблице ставлю тычку перед этим полем, оно попадает в окно "названия строк", если перетаскиваю его в окно значения и выставляю параметр "сумма", то у меня в сводной таблице отображается количество ID, а не их значения, если же я снимаю тычку перед полем ID, то оно исчезает с окна "значения" и данные в сводной таблице исчезают.
Если создаю сводную на таблице krosav4ig, то все выходит автоматом. Свою таблицу приложить не могу.
Подскажите, в krosav4ig в сводной таблице в названиях строк стоят FIO, в названиях столбцов - №, а значения заполнены значениями ID. При этом в списке полей перед полем ID тычка стоит, а в окне "значения" этого поля нет. Когда я в своей таблице ставлю тычку перед этим полем, оно попадает в окно "названия строк", если перетаскиваю его в окно значения и выставляю параметр "сумма", то у меня в сводной таблице отображается количество ID, а не их значения, если же я снимаю тычку перед полем ID, то оно исчезает с окна "значения" и данные в сводной таблице исчезают.
Если создаю сводную на таблице krosav4ig, то все выходит автоматом. Свою таблицу приложить не могу.SergeyKorotun
Умножил в реальной таблице значения ID через специальную вставку на 1 и сводная таблица заполнилась значениями ID, а не нулями. Но ведущие нули потерял. Вопрос в приложенном файле. [moder]Это уже совсем другой вопрос, значит, другая тема[/moder]
Умножил в реальной таблице значения ID через специальную вставку на 1 и сводная таблица заполнилась значениями ID, а не нулями. Но ведущие нули потерял. Вопрос в приложенном файле. [moder]Это уже совсем другой вопрос, значит, другая тема[/moder]SergeyKorotun
Ну почему же другая? Я применил решение, предложенное krosav4ig, но не на приложенном файле, а на реальном, и получил не то, что должно быть. Но если вы будете настаивать, мне не трудно создать тему, только в этом случае помогающим придется снова разбираться с нуля.
Ну почему же другая? Я применил решение, предложенное krosav4ig, но не на приложенном файле, а на реальном, и получил не то, что должно быть. Но если вы будете настаивать, мне не трудно создать тему, только в этом случае помогающим придется снова разбираться с нуля.SergeyKorotun