Я пытаюсь создать отчет, в котором столбец, содержащий несколько уникальных данных, используется в качестве идентификаторов при извлечении данных из исходной таблицы / базы данных, где массив поиска содержит ячейки или поля, которые содержат несколько разнородных и повторяющихся данных.
Приведенная ниже иллюстрация может объяснить, что я пытаюсь сделать:
Это исходная таблица
И нижеприведенный отчет - это то, чего я пытаюсь достичь:
Я пытаюсь найти похожие вопросы, но безрезультатно. Я могу классифицировать себя как промежуточного пользователя в Excel, особенно на стороне VBA.
microsoft-excel
worksheet-function
vlookup
Фрэнсис Оуано Понсе
источник
источник
Ответы:
У меня было немного свободного времени, поэтому я написал макрос VBA, который может автоматизировать это. Поскольку у вас есть некоторые знания о VBA, изучите этот код и поймите, где когда-либо существует жесткое кодирование. Макрос делает три вещи
В этом примере таблица ввода представлена в формате A1: C4 (A2: A4 - это ячейки с именем продукта). Выходная таблица начинается с ячейки E1. Поместите это жесткое кодирование в VBA, чтобы соответствовать диапазонам таблицы. Лист будет назван как «Лист1». В коде жестко задано имя листа, диапазон входных ячеек и выходная начальная ячейка. Пожалуйста, посмотрите все экземпляры кода для правильной работы.
На листе нажмите ALT + F11, чтобы открыть редактор VBA, вставить модуль и вставить в него приведенный ниже код, чтобы создать макрос с именем Report.
Сохраните и вернитесь на рабочий лист. Нажмите клавиши ALT + F8, чтобы открыть диалоговое окно «Макрос», и запустите макрос с именем «Отчет», чтобы получить нужную таблицу вывода. Обратите внимание, что вы не должны повторно запускать этот макрос снова и снова. Это будет работать только один раз. Однако вы можете очистить предыдущую выходную таблицу и повторно запустить этот макрос, чтобы воссоздать выходную таблицу с нуля. Макрос может быть дополнительно улучшен, чтобы очистить предыдущую таблицу в качестве первого шага, прежде чем продолжить.
источник