Muszę scalić informacje z wielu wierszy i kolumn na podstawie wspólnej wartości dla określonej komórki.
Myślę, że mogę tutaj użyć makra, ponieważ problem polega na tym, że muszę scalić wiele informacji, gdzie dla niektórych wierszy niektóre kolumny są puste, a inne zawierają informacje.
Wartości w komórkach, których muszę użyć do scalenia wierszy, mogą pojawić się więcej niż jeden raz.
Dodaję obraz, na którym widać strukturę dokumentu i część listy powtarzających się wartości w kolumnie „E-mail”. Sprawdzam to za pomocą funkcji WYSZUKAJ.PIONOWO i jest ich około 3000, a arkusz ma około 5000 wierszy.
microsoft-excel
macros
Juan Francisco
źródło
źródło
D
masz e-maila i inny e-mail w kolumnieO
. Czasami jest tak samo, a czasem inaczej. Na tej podstawie chcesz coś scalić, ale nie wyjaśniasz, co.Odpowiedzi:
Z VBA / Makrami:
Otwórz VBA / Macros, włóż nowy moduł w ThisWorkbook i wklej ten kod po prawej stronie.
Gdy dwa e-maile są takie same, scala tylko wszystkie różne pola. I użyj,
/
aby oddzielić je w komórce.Zakłada, że twoje pole e-mail jest czwartą kolumną. Można go zmienić za pomocą zmiennej,
emailcolumn
a także założyć, że maksymalna kolumna wynosi 12, a także można go łatwo zmienić w zmiennejtotalcolumns
.źródło
lastRow = wks.Cells(Rows.Count, "A").End(xlUp).Row
.lastRow = wks.Cells(Rows.Count, "A").End(xlUp).Row
. Jeśli w kolumnie A jest pusta komórka, zaczyna się od tego momentu. Jeśli znasz liczbę wierszy (na przykład 3000), zamień tę linię nalastRow=3000
i powinna działać.