Фільтрування даних Excel Data з опитування до отримання електронних листів


3

Протягом літа ми провели опитування для кількох студентів, щоб вказати на їх зацікавленість у ряді клубів. Спосіб сканування відповідей дав нам стовпчик для кожного клубу та "1" у кожній комірці в колонці для кожної людини (ряду), яка вказала на їх зацікавленість у цьому конкретному клубі. Найперший стовпець - це їх електронна адреса.

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

Кінцева мета - відфільтрувати дані, щоб ми могли отримати електронні листи зацікавлених у кожному клубі - потім надсилати ці електронні листи в індивідуальний файл клубам для їх маркетингу.

Минулого року я зробив це, переглянувши та "фільтруючи" кожен окремий клуб на "1", скопіювавши всі повідомлення електронної пошти у стовпчик електронної пошти у новий документ, збережи його та відправивши файл у відповідний клуб.

Використовуючи наведений вище приклад, у нас був файл для club1, який містив Email1, Email3 та Email7; ще один для Клубу 2, що містить електронну пошту 5 тощо, тощо. З 200+ клубами та 2000+ електронними листами ви можете уявити, що це забирало багато часу.

Колега запропонував, що зведені таблиці можуть допомогти, і ми трохи пограли з ним, щоб побачити, чи є більш просте рішення ... але ми не змогли знайти того, який би різко скоротився на час, необхідний для проходження даних.

Цікаво, чи хтось мав якісь ідеї чи поради? Можливо, моє рішення було вже найшвидшим?

Відповіді:


3

Ви можете використовувати VBA для створення окремих файлів для кожного клубу. Наведена FilterDataнижче процедура створює файл для кожного клубу в тій самій директорії, що і файл, що містить код VBA, який також повинен містити відповіді в аркуші під назвою Responses.

Option Explicit

Sub FilterData()
    Dim Responses As Worksheet
    Dim Column As Long

    Set Responses = ThisWorkbook.Worksheets("Responses")
    Column = 2

    Do While Responses.Cells(1, Column).Value <> ""
        With Workbooks.Add(xlWBATWorksheet)
            With .Worksheets(1)
                Responses.Cells.Copy .Cells
                .Columns(Column).AutoFilter Field:=1, Criteria1:="<>1"
                .Rows(2).Resize(.Rows.Count - 1).Delete Shift:=xlUp
                .Columns(2).Resize(, .Columns.Count - 1).Delete Shift:=xlShiftToLeft
            End With

            .Close SaveChanges:=True, Filename:=ThisWorkbook.Path & "\" & Responses.Cells(1, Column).Value
        End With

        Column = Column + 1
    Loop
End Sub

Це працює ПЕРЕФЕКТНО. Саме те, що мені було потрібно - дуже дякую!
Коді С.

Через рік - це знову врятувало мені життя. Ще одне спасибі Андреас. :)
Коді С.

1

Стінові таблиці - найкращий спосіб перейти сюди. Створіть зведений стіл зі свого листа.

Коли у вас є, перетягніть стовпець електронної пошти у поле рядків, тоді клуб, який вас цікавить, у поле фільтра. Встановіть фільтр на "1"

Це дасть вам список усіх людей, які зацікавлені в цьому клубі.

Excel


Спасибі Артур - це близько 90% того, що я хотів це зробити; супер корисно, дякую за уточнення! Єдине моє питання зараз - чи можна придумати будь-який спосіб автоматизації процесу розділення даних клубу на окремі аркуші (або файли)? Схоже, зняття / перетягування кожного клубу до фільтрів у форматі зведеної таблиці займе приблизно стільки ж часу, скільки просто фільтрація кожного стовпця (клубу) окремо протягом 1-х в оригінальних даних та копіювання / вставлення результатів із стовпця електронної пошти.
Коді С.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.