[size=12][font=Times]Имеется лист с двумя таблицами по 2 столбца в каждой. В части названия и назначения столбцов таблицы идентичны (логически). В первом столбце уникальный айди номенклатуры, во втором название номенклатуры , в обоих таблицах соответственно. Необходимо сравнить значения в колонке "А" (айди из первой таблицы) с колонкой "С" (айди из второй таблицы) , в случаи нахождения соответствия, сравнивать "вторые значения" (имеется ввиду названия находящиеся в столбцах "B" и "D" соответственно) для найденых одинаковых айди. Безусловно названия необходимо сравнивать из соответствующих строк в каждой из таблиц где найдены совпадающиее "первые значения - айди". В итоге необходимо вернуть те строки, в которых айди товара совпали, а названия нет. Пример листа прилагаю. Реальная таблица имеет около 20000 записей - каждая. Крайне важно понять принцип создания подобного листа с формулой\сводной таблицей\макросом либо получить шаблонный файл такого листа, ввиду того что данную операцию придётся повторять неоднократно, получая новые массивы данных. Спасибо за помощь.
[size=12][font=Times]Имеется лист с двумя таблицами по 2 столбца в каждой. В части названия и назначения столбцов таблицы идентичны (логически). В первом столбце уникальный айди номенклатуры, во втором название номенклатуры , в обоих таблицах соответственно. Необходимо сравнить значения в колонке "А" (айди из первой таблицы) с колонкой "С" (айди из второй таблицы) , в случаи нахождения соответствия, сравнивать "вторые значения" (имеется ввиду названия находящиеся в столбцах "B" и "D" соответственно) для найденых одинаковых айди. Безусловно названия необходимо сравнивать из соответствующих строк в каждой из таблиц где найдены совпадающиее "первые значения - айди". В итоге необходимо вернуть те строки, в которых айди товара совпали, а названия нет. Пример листа прилагаю. Реальная таблица имеет около 20000 записей - каждая. Крайне важно понять принцип создания подобного листа с формулой\сводной таблицей\макросом либо получить шаблонный файл такого листа, ввиду того что данную операцию придётся повторять неоднократно, получая новые массивы данных. Спасибо за помощь.avsliroy
Протянуть в обоих таблицах ВПР() (по номеру вытянет название), рядом формулу на ЕСЛИ() сравнивающую критерии. Да, на 20000 будет не быстро, зато не нужно никакого шаблона.
Протянуть в обоих таблицах ВПР() (по номеру вытянет название), рядом формулу на ЕСЛИ() сравнивающую критерии. Да, на 20000 будет не быстро, зато не нужно никакого шаблона.Hugo
Hugo, благодарю за внимание к вопросу. С помощью впр удалось только найти соответствие по айди и в вы вести в 5 столбик, далее не хватает знаний и практики в экселе. Возможно вы бы могли на моём (приложенном) примере показать ваше решение ?
Hugo, благодарю за внимание к вопросу. С помощью впр удалось только найти соответствие по айди и в вы вести в 5 столбик, далее не хватает знаний и практики в экселе. Возможно вы бы могли на моём (приложенном) примере показать ваше решение ?avsliroy
Сообщение отредактировал avsliroy - Понедельник, 11.12.2017, 15:25
Я сейчас файл показать не могу, поэтому на словах - вот вытянули рядом сахар и сахарок, далее правее можете сравнить что ЕСЛИ() они неодинаковы - ставим например единичку. Далее фильтруете по единицам и видите список несоответствий. Или выбрать все номера в отдельный файл и тянуть всё в него.
Я сейчас файл показать не могу, поэтому на словах - вот вытянули рядом сахар и сахарок, далее правее можете сравнить что ЕСЛИ() они неодинаковы - ставим например единичку. Далее фильтруете по единицам и видите список несоответствий. Или выбрать все номера в отдельный файл и тянуть всё в него.Hugo
В том и дело что "сахарки" не рядом у меня - таблица никаким образом не сформатирована по признаку соответствия айди товаров. Удалось только получить "1" в связи с наличием идентичного айди во второй колонке айди, при этом таблица осталась в первночальном виде только добавил столбец о том что имеется идентичный айди в другом столбце ("1") и таких строк из 20000 тысяч остаётся 1000..... Спасибо за (я уверен) годный вариант (консультацию) но попробую подождать - может кто-то сможет выложить формулу по 1 строке или файл -пример.
В том и дело что "сахарки" не рядом у меня - таблица никаким образом не сформатирована по признаку соответствия айди товаров. Удалось только получить "1" в связи с наличием идентичного айди во второй колонке айди, при этом таблица осталась в первночальном виде только добавил столбец о том что имеется идентичный айди в другом столбце ("1") и таких строк из 20000 тысяч остаётся 1000..... Спасибо за (я уверен) годный вариант (консультацию) но попробую подождать - может кто-то сможет выложить формулу по 1 строке или файл -пример.avsliroy
Сообщение отредактировал avsliroy - Понедельник, 11.12.2017, 15:50
вариант с QueryTable в ЭтаКнига код для обновления подключения [vba]
Код
Private WithEvents QT As QueryTable Private Sub QT_BeforeRefresh(Cancel As Boolean) QT.Connection = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Extended Properties=""excel 12.0 macro;hdr=no"";Data Source=" & ThisWorkbook.FullName DoEvents End Sub Private Sub Workbook_Open() Set QT = [Запрос].ListObject.QueryTable End Sub
[/vba]
на листе таблица "Запрос", обновляется по ПКМ>Обновить
вариант с QueryTable в ЭтаКнига код для обновления подключения [vba]
Код
Private WithEvents QT As QueryTable Private Sub QT_BeforeRefresh(Cancel As Boolean) QT.Connection = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Extended Properties=""excel 12.0 macro;hdr=no"";Data Source=" & ThisWorkbook.FullName DoEvents End Sub Private Sub Workbook_Open() Set QT = [Запрос].ListObject.QueryTable End Sub
[/vba]
на листе таблица "Запрос", обновляется по ПКМ>Обновить