Excel – поиск слова в столбце A. Когда совпадение найдено в строке, сообщите слово, которое находится в столбце B, затем найдите столбец A для любых сообщенных слов

Я хочу знать, как искать строку в столбце A, сообщать соответствующие строки (строки), которые находятся в столбце B, а затем снова искать столбец A для этих строк и т. Д. Повторяйте до тех пор, пока не будет больше совпадений. найденный.

Я пытаюсь создать удобный для пользователя лист или макро-Input-Box, который будет искать лист Excel в 2300+ и генерировать отчет. Я хочу, чтобы пользователь мог выбрать «строку», которую будет искать (я сделаю это с выпадающим меню). Затем лист / программа будет:

  1. search Столбец A для всех совпадений с выбранной строкой;
  2. сообщите соответствующие строки (строки), которые (находятся) в столбце B (такая же строка, что и совпадение);
  3. выполните поиск столбца A снова для всех строк, найденных в столбце B;
  4. повторите шаги 2) и 3), пока не будет найдено больше совпадений.

В настоящее время в столбцах A и B. используется простой фильтр. Сначала пользователь выбирает строку, которую они хотят фильтровать в столбце A. Затем они должны вручную определить, присутствует ли какой-либо из результатов в столбце B в столбце A, и если да, добавьте их к критериям фильтрации столбца A. В некоторых случаях это может потребовать нескольких итераций этого процесса и может стать довольно трудоемким.

Моя цель – избавить пользователя от необходимости вручную выполнять эти итерации.

Вот упрощенная версия того, что я ищу (фактические имена более сложны).

Equipment Contents Box 1 Box 2 Box 1 Box 3 Box 1 Box 4 Box 1 Tool 1 Box 1 Tool 2 Box 1 Tool 3 Box 2 Box 5 Box 2 Tool 4 Box 2 Tool 5 Box 3 Box 6 Box 3 Tool 6 Box 3 Tool 7 Box 4 Tool 8 Box 5 Tool 9 Box 6 Tool 10 

Например, «Вставка 2» содержит «Вставка 5», «Инструмент 4» и «Инструмент 5». «Вставка 5» содержит «Инструмент 9». Таким образом, если пользователь выбирает «Врезка 2», отчет будет генерировать отчет из четырех строк; «Вставка 5», «Инструмент 4», «Инструмент 5» и «Инструмент 9» (необязательно в этом порядке).

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

=IF(ISERROR(INDEX('All Inclusive Tab'!D:F,SMALL(IF('All Inclusive Tab'!D:D=$A$2,ROW('All Inclusive Tab'!D:D)),ROW(1:1)),2)),"",INDEX('All Inclusive Tab'!D:F,SMALL(IF('All Inclusive Tab'!D:D=$A$2,ROW('All Inclusive Tab'!D:D)),ROW(1:1)),2))

Я ввел этот код в несколько ячеек на отдельном листе. Другие ячейки на листе содержат аналогичный код, который затем выполняет поиск значений, сообщаемых этим кодом. И т. Д. Этот метод работает при поиске нескольких совпадений. Однако я обнаружил, что он ограничен из-за сложности моего листа Excel (особенно учитывая большое количество позиций). Это также очень медленно, когда я начинаю создавать несколько «рабочих» ячеек. Я уверен, что должен быть лучший способ сделать это.

Мне сказали создать макрос и использовать цикл «для» или «в то время». Я не очень хорошо знаком с VBA и ищу любые предложения. Какие поисковые коды были бы полезны для этого приложения и как они были бы проанализированы? Я также играю с идеей сделать этот проект с использованием Microsoft Access, и мне интересно, облегчит ли это что-то более сложное или сложное.

EDIT: Вот два примера желаемого вывода. Если в раскрывающемся списке выбрана «Вставка 2», результат будет выглядеть следующим образом:

 Equipment Contents Box 2 Box 5 Box 5 Tool 9 Box 2 Tool 4 Box 2 Tool 5 

И если из раскрывающегося списка были выбраны «Box 3», результат будет выглядеть так:

 Equipment Contents Box 3 Box 6 Box 6 Tool 10 Box 3 Tool 6 Box 3 Tool 7 

В этом примере я устанавливаю это так,

введите описание изображения здесь

Когда код будет запущен, результаты будут такими. введите описание изображения здесь

Вот код.

 Sub Button1_Click() Dim rws As Long, rng As Range, c As Range, Frng As Range, Frws As Long Range("K:Z").ClearContents Application.ScreenUpdating = 0 Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("K1"), Unique:=True rws = Cells(Rows.Count, "K").End(xlUp).Row Set rng = Range("K3:K" & rws) For Each c In rng.Cells Columns("A:A").AutoFilter Field:=1, Criteria1:=c Frws = Cells(Rows.Count, "A").End(xlUp).Row Set Frng = Range("B3:B" & Frws).SpecialCells(xlCellTypeVisible) Frng.Copy c.Offset(0, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Next c ActiveSheet.AutoFilterMode = 0 Application.CutCopyMode = 0 End Sub 
  • Импорт таблицы доступа в таблицу Excel без первой записи, являющейся меткой поля доступа
  • Импортируйте данные из файла Excel, чтобы файл не был заблокирован от пользователя Oher
  • Добавление записей из одной таблицы в другую (с разными столбцами)
  • Решение для поиска строки из списка, в другую строку VBA
  • Как устранить ошибку «Введите значение параметра» в MS-Access
  • Как экспортировать данные из базы данных Oracle в файл csv?
  • Как преобразовать Excel XLS в MDB Access с помощью Excel VBA
  • как экспортировать запрос в Excel без усечения Memos до 255 символов?
  • Незначительное признание номинальных значений CSV в R
  • Использование VBA для установки Excel в «Печать рабочей книги» в качестве настройки печати по умолчанию
  • Объект Excel в Access VBA - Веб-скребок - Откройте файл Excel или обратитесь к файлу Excel, который уже открыт
  • Interesting Posts

    Альтернатива использованию флагов при итерации через объекты в python

    xlrd – Поиск столбца Excel для значения и идентификатора строки возврата

    Можно ли добавить форму в существующее изображение в Excel?

    Excel 2007, один экземпляр работает заставляет других зависать? Я уверен, что в 2003 году это было не так

    vba – смещение ячейки, используя активный адрес ячейки ячейки?

    Код VBA для построения двух отдельных диаграмм для альтернативных столбцов

    Объединение информации с двух листов Excel

    Вставить изображение из буфера обмена в Excel

    Excel: создать два столбца списков списков с одним зависимым от другого

    Как карта процессов ETL сопоставляется с MS Power Power Pivot (модель данных)

    Ошибка копирования данных из одной книги в другую

    Сортировка сводной таблицы VBA

    Как я могу считывать данные из файла excel в новый класс при каждом запуске

    Excel Interop в ошибке получения VB HRESULT: 0x800A03EC

    Удаление дубликатов, сохранение последней записи – оптимизация

    Давайте будем гением компьютера.