Scal dane w dwóch plikach programu Excel

2

Mam dwa dokumenty Excela z danymi użytkownika AD, które muszę scalić, aby zebrać wszystkie informacje.

Jeden z dokumentów zawiera informacje o grupach AD i nazwach członków tych grup. Drugi dokument zawiera informacje o użytkownikach - jeśli są oni włączeni, nazwa użytkownika, nazwa i adres e-mail.

Wspólne wartości w dokumentach to nazwy. Chcę wartości nazw użytkowników i adresów e-mail w dokumencie Excel z grupami.

Przykładowe grupy dokumentów

Przykładowi użytkownicy dokumentów

Mam ponad 3400 wierszy w dokumencie grup i 271 użytkowników wymienionych w dokumencie użytkowników. W dokumencie grupowym użytkownicy będą wymieniani kilka razy, ponieważ użytkownik może i będzie członkiem więcej niż jednej grupy.

Czy istnieje sposób scalenia żądanych danych (adres e-mail i nazwa użytkownika) przy użyciu wspólnej wartości w obu dokumentach (nazwa użytkownika)? I czy jest jakiś problem z kilkoma użytkownikami wymienionymi na liście?

Soltuion

Udało mi się to zrobić, instalując dodatek do programu Excel, Ablebits Data.

https://www.ablebits.com/

Dało mi to możliwość scalenia dokumentów programu Excel i dodawania danych od jednego do drugiego w odniesieniu do tych samych danych.

Hege Jacobsen
źródło

Odpowiedzi:

1

Chciałbym skorzystać z w pełni zintegrowanej funkcji Get & Transform Excel, ponieważ masz program Excel 2016. W poprzedniej wersji można użyć bezpłatnego dodatku MS Power Query .

Łączenie danych z wielu źródeł danych jest bez znajomości programowania / vba wcale trudne. Wsparcie MS opisuje to tutaj krok po kroku.

Potrzebujesz tych głównych kroków.

  1. Zaimportuj pierwsze źródłowprowadź opis zdjęcia tutaj
  2. Zaimportuj drugie źródłowprowadź opis zdjęcia tutaj
  3. Połącz pierwsze źródło z drugim poprzez definicję wspólnych kolumn / pól.wprowadź opis zdjęcia tutaj

Oto kod M (nie musisz go pisać, gdy korzystasz z interfejsu użytkownika Get & Transform):

  • Pierwsze źródło (np. Informacje o użytkowniku)

    let
        Source = Excel.Workbook(File.Contents("C:\yourPath\example\Input2.xlsx"), null, true),
        Table13_Table = Source{[Item="Table13",Kind="Table"]}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Table13_Table,{{"Name", type text}, {"Enabled", type logical}, {"email", type text}})
    in
        #"Changed Type"     
  • Drugie źródło (np. Grupy AD), z którym łączy się pierwsze źródło

    let
        Source = Excel.Workbook(File.Contents("C:\Users\EDubosson\Documents\Privat\OneDrive\Öffentlich\example\Input1.xlsx"), null, true),
        Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"GroupName", type text}, {"Member", type text}}),
        #"Merged Queries" = Table.NestedJoin(#"Changed Type",{"Member"},Table13,{"Name"},"Table13",JoinKind.Inner),
        #"Expanded {0}" = Table.ExpandTableColumn(#"Merged Queries", "Table13", {"Enabled", "email"}, {"Enabled", "email"})
    in
        #"Expanded {0}"
visu-l
źródło