Добрый день! Помогите с составлением макроса! Есть файл состоящий из 3х листов на каждом из листов таблица. В приложении выкладываю пример. Получилось глуповато, но сам документ выложить не могу, он для внутреннего пользования.
Опишу смысл этих таблиц: Есть три разные компании, которые поставляют фрукты. Данные в этих таблицах представлены в немного разных видах. Наиболее совпадающими столбцами являются «КОД» и «НОМЕР». Нужно составить таблицу соответствия, чтобы все три таблицы были на одном листе и одинаковые сорта фруктов стояли в таблице на одной и той-же строке. Плюс еще нужно выписать те данные, где цена меньше. В примере во вкладке "ИТОГ" сделал вручную то, что необходимо получить... Оригинальные таблицы содержат порядка 800 строк... Вся загвоздка в том что столбцы «НОМЕР» не точно совпадают в разных таблицах Есть еще такой момент: если, допустим, поступают фрукты с номером которого нет в указанных тогда «ЦЕНА» указывается из той строки в которой ячейка «НОМЕР» пустая. Замучился уже голову ломать над этим вопросом…
Добрый день! Помогите с составлением макроса! Есть файл состоящий из 3х листов на каждом из листов таблица. В приложении выкладываю пример. Получилось глуповато, но сам документ выложить не могу, он для внутреннего пользования.
Опишу смысл этих таблиц: Есть три разные компании, которые поставляют фрукты. Данные в этих таблицах представлены в немного разных видах. Наиболее совпадающими столбцами являются «КОД» и «НОМЕР». Нужно составить таблицу соответствия, чтобы все три таблицы были на одном листе и одинаковые сорта фруктов стояли в таблице на одной и той-же строке. Плюс еще нужно выписать те данные, где цена меньше. В примере во вкладке "ИТОГ" сделал вручную то, что необходимо получить... Оригинальные таблицы содержат порядка 800 строк... Вся загвоздка в том что столбцы «НОМЕР» не точно совпадают в разных таблицах Есть еще такой момент: если, допустим, поступают фрукты с номером которого нет в указанных тогда «ЦЕНА» указывается из той строки в которой ячейка «НОМЕР» пустая. Замучился уже голову ломать над этим вопросом…Aleksashka7011
Я так думаю, что задачка может иметь решение. Для этого нужно буде выделить все номера товаров (с учетом наличия дефиза, подразумевающего несколько номеров). Эти номера будут уникальны. Далее Каждому номеру присваивается переменная (Компания) и соответствующие ей Название и Цена. Затем исходные преобразуются в промежуточные, где сортируются по номерам и расставляются на итоговый лист таким образом, чтобы каждый уникальный номер был в одной строке. Далее все 3 таблицы (или более....) последовательно просматривают на наличие одинаковых переменных - в какой таблице количество строк с этими переменными больше - та и будет на данном этапе , скажем так, главной. Строки найденных диапазонов объединяются для приведения к виду, максимально похожему на исходный, причем в столбце с номером - без потери данных. Далее создается итоговая таблица, вычисляющая минимальную цену по позициям (нашим ранее найденным диапазонам).
Я не программист и поэтому здесь написал свои предположения по алгоритму для вашей задачи. И я считаю, что написание кода для ее выполнения достаточно трудоемко. Поэтому в этой ветке вы вряд-ли получите сразу готовое решение. Советую вам направится в эту ветку.
Я так думаю, что задачка может иметь решение. Для этого нужно буде выделить все номера товаров (с учетом наличия дефиза, подразумевающего несколько номеров). Эти номера будут уникальны. Далее Каждому номеру присваивается переменная (Компания) и соответствующие ей Название и Цена. Затем исходные преобразуются в промежуточные, где сортируются по номерам и расставляются на итоговый лист таким образом, чтобы каждый уникальный номер был в одной строке. Далее все 3 таблицы (или более....) последовательно просматривают на наличие одинаковых переменных - в какой таблице количество строк с этими переменными больше - та и будет на данном этапе , скажем так, главной. Строки найденных диапазонов объединяются для приведения к виду, максимально похожему на исходный, причем в столбце с номером - без потери данных. Далее создается итоговая таблица, вычисляющая минимальную цену по позициям (нашим ранее найденным диапазонам).
Я не программист и поэтому здесь написал свои предположения по алгоритму для вашей задачи. И я считаю, что написание кода для ее выполнения достаточно трудоемко. Поэтому в этой ветке вы вряд-ли получите сразу готовое решение. Советую вам направится в эту ветку.amur84
Я тоже глянул - рука не поднимается делать И не вполне ясно, как выводить результат. Алгортим думаю похож как выше описано, но на словаре - выделяем все номера, далее набираем словарь код_фрукта/номер, им в итем отбираем минимальную цену. Что делать с названием - не понятно, но пусть будет название минимальной цены. Когда поступают новые "фрукты", делаем аналогично, и из словаря каждой паре код_фрукта/номер можем выбрать минимальную цену, или же пополнить словарь из "вновьприбывших". Со словарём работы немного, но вот делить номера муторно. И главное - что делать с результатом? По каждому фрукту будет куча строк код_фрукта/номер/минцена, и не факт, что всюду минцена будет одинакова.
Я тоже глянул - рука не поднимается делать И не вполне ясно, как выводить результат. Алгортим думаю похож как выше описано, но на словаре - выделяем все номера, далее набираем словарь код_фрукта/номер, им в итем отбираем минимальную цену. Что делать с названием - не понятно, но пусть будет название минимальной цены. Когда поступают новые "фрукты", делаем аналогично, и из словаря каждой паре код_фрукта/номер можем выбрать минимальную цену, или же пополнить словарь из "вновьприбывших". Со словарём работы немного, но вот делить номера муторно. И главное - что делать с результатом? По каждому фрукту будет куча строк код_фрукта/номер/минцена, и не факт, что всюду минцена будет одинакова.Hugo