Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Anonymisierung einer großen Excel Tabelle

Forumthread: Anonymisierung einer großen Excel Tabelle

Anonymisierung einer großen Excel Tabelle
23.12.2019 16:46:24
JohnnyN
Hallo, ich bin neu hier und hatte bisher alle Probleme ohne fremde Hilfe gelöst. Das folgende übersteigt meine Fähigkeiten:
Ich muss eine Excel Tabelle mit 22.000 Zeilen anonymisieren.
In einer Spalte C stehen die Namen von Kunden (Nachname, Vorname)(viele Duplikate!), in D die von Mitarbeitern. In Spalte E sind tages- und Minutengenaue Berichte von Mitarbeitern zu Kunden. In den Berichten kommen sporadisch die Namen der Kunden oder anderer Mitarbeiter vor.
Eine Liste mit 275 Kunden (ohne Duplikate) herauszuziehen war kein Problem.
Daraus die Nach- und Vornamen in getrennten Spalten zu trennen ging auch gut (Spalten I+J)
Auch die Bildung von Pseudonymen aus Vor- und Nachnamen ging gut: 1.+2 Buchstabe Nachname & 1.Buchstabe Vorname & "xxx". (Spalte K) (Beispiel: "Hans Meier" = "MeHxxx")
Das gleiche habe ich für die Mitarbeiter in Spalten L, M, N.
Jetzt brauche ich ein Makro, welches seriell die Spalte E mit den Berichten durchsucht und nacheinander die darin vorkommenden Namen aus Spalte I sucht und durch die Einträge in K ersetzt sowie das gleiche nochmal für die Mitarbeiter. Jeweils die Spaltenindizes zu ändern, soll nicht das Problem sein. (Was ich mit den Vornamen mache, weiß ich noch gar nicht...)
Ein wenig VBA kann ich, aber die Variablendefinitionen und seriellen Befehle übersteigen jetzt meine Fähigkeiten...
Vielen Dank schon mal an die, die mir helfen!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anonymisierung einer großen Excel Tabelle
23.12.2019 16:54:04
Klaus
Warum machst du das nicht mit STRG+F? Derweil einmal den Rekorder laufen lassen, schon hast du es als Makro.
LG und frohes Fest,
Klaus M.
AW: Anonymisierung einer großen Excel Tabelle
23.12.2019 18:36:23
Fine
Hallo, JohnnyN,
müßte ich das tun, was Du vorhast - ich finde das gar nicht so einfach - würde ich wohl diesen Ansatz wählen:
1. Wegen der Größe würde ich im Hauptspeicher arbeiten - also: 22.000 Zeilen mit einem Rutsch in ein Array einlesen.
2. Dieses Array würde ich in einer Schleife Satz für Satz durchgehen:
auf das Element, das den Inhalt von Spalte E, also den Bericht, enthält würde ich in Abhängigkeit vom zu suchenden Kundennamen, den Du aus einem anderen Array-Element holst, einen FIND- bzw. Find next-Befehl loslassen und bei Funden (hoffentlich(!!!!) sind die Namen dort so wie in der Namenspalte) würde ich eben den Namen ersetzen. So oft es eben nötig ist.
3. Das Gleiche muß dann auch noch einmal für die Mitarbeiter gemacht werden.
Damit Du ein bißchen spinzen kannst:
https://www.informatik-aktuell.de/entwicklung/programmiersprachen/excel-vba-im-zusammenspiel-mit-arrays.html
https://excelmacromastery.com/excel-vba-array/
https://excelmacromastery.com/excel-vba-find/
Ich hoffe, Dir etwas weitergeholfen zu haben
Anzeige
AW: Anonymisierung einer großen Excel Tabelle
23.12.2019 18:38:07
Fine
... sorry
Natürlich mußt Du am Ende das Array wieder zurückschreiben - auch mit einem Befehl.
Gutes Gelingen!
AW: Anonymisierung einer großen Excel Tabelle
24.12.2019 12:50:20
JohnnyN
Hallo Fine,
ich bin jetzt nicht auf Arbeit, sehe aber dass Du geantwortet hast! Vielen herzlichen Dank schon mal dafür! Ich werde das am Freitag ausprobieren (bzw. erstmal lesen), wenn ich wieder arbeiten bin! Jetzt wünsche ich erstmal ein frohes Fest!
Viele Grüße Johnny
Anzeige
AW: Anonymisierung einer großen Excel Tabelle
24.12.2019 17:00:38
Fine
Danke für die Rückmeldung:-)
Ich hoffe, es paßt!
Fine
AW: Anonymisierung einer großen Excel Tabelle
25.12.2019 16:21:43
Fine
Ich hoffe, Du liest diesen Hinweis, bevor Du Dich an die Arbeit machst.
Bitte, verwende - falls Du dem von mir vorgeschlagenen Ansatz folgen möchtest - statt der Find-Methode die Replace-Funktion im Array. Find ist eine Methode eines Range-Objektes und funktioniert nicht in Arrays.
Schau' ggfs. auch hier hinein:
https://vbaf1.com/functions/replace/#_Toc08
Melde Dich bitte, wenn Du alleine nicht weiterkommst.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Anonymisierung einer großen Excel Tabelle


Schritt-für-Schritt-Anleitung

Um eine Excel-Tabelle mit 22.000 Zeilen zu anonymisieren, gehe wie folgt vor:

  1. Daten vorbereiten: Stelle sicher, dass die Namen in Spalte C (Kunden) und D (Mitarbeiter) korrekt eingetragen sind. Trenne Vor- und Nachnamen in Spalten I und J.

  2. Pseudonyme erstellen: Verwende folgende Formel in Spalte K, um Pseudonyme zu generieren:

    =LINKS(C2;2) & LINKS(B2;1) & "xxx"

    Passe die Formel für die Mitarbeiter in den Spalten L, M und N entsprechend an.

  3. Makro erstellen: Öffne den VBA-Editor (ALT + F11) und erstelle ein neues Modul. Füge das folgende Makro ein:

    Sub NamenAnonymisieren()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("DeinBlattName") ' Blattname anpassen
       Dim i As Long, j As Long
       Dim kundenName As String
       Dim mitarbeiterName As String
    
       For i = 1 To 22000 ' Anzahl der Zeilen anpassen
           For j = 1 To 275 ' Anzahl der Kunden
               kundenName = ws.Cells(j, 9).Value ' Spalte I
               ws.Cells(i, 5).Value = Replace(ws.Cells(i, 5).Value, kundenName, ws.Cells(j, 11).Value) ' Spalte K
           Next j
           For j = 1 To 275 ' Anzahl der Mitarbeiter
               mitarbeiterName = ws.Cells(j, 12).Value ' Spalte L
               ws.Cells(i, 5).Value = Replace(ws.Cells(i, 5).Value, mitarbeiterName, ws.Cells(j, 14).Value) ' Spalte N
           Next j
       Next i
    End Sub

    Passe die Spalten und Blattnamen entsprechend an.

  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Namen in der Spalte E zu anonymisieren.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Überprüfe, ob die Spalten und Blattnamen korrekt angegeben sind. Stelle sicher, dass du die richtige Excel-Version verwendest, die Makros unterstützt.
  • Fehler: Namen werden nicht ersetzt.

    • Lösung: Achte darauf, dass die Namen in den Berichten exakt mit denen in den Spalten I und L übereinstimmen. Überprüfe auf Leerzeichen oder Sonderzeichen.

Alternative Methoden

  1. Suchen und Ersetzen: Eine einfache Methode, um Namen zu anonymisieren, ist die Verwendung von STRG + F und anschließend Ersetzen. Dies ist jedoch weniger effizient bei großen Datenmengen.

  2. Power Query: Mit Power Query kannst du Daten anonymisieren, indem du Abfragen erstellst, die die Namen in den Berichten ersetzen.


Praktische Beispiele

  • Beispiel: Angenommen, du hast in Spalte C den Namen "Hans Meier". Das Pseudonym wäre "MeHxxx". Wenn in Spalte E der Bericht "Hans Meier hat gearbeitet" steht, wird es durch "MeHxxx hat gearbeitet" ersetzt.

  • Makro-Anpassung: Wenn du zusätzlich Vornamen anonymisieren möchtest, erweitere das Makro um eine weitere Schleife, die auch die Vornamen aus Spalte J ersetzt.


Tipps für Profis

  • Performance optimieren: Arbeite mit Arrays, um die Performance zu verbessern, besonders bei großen Datenmengen. Dies reduziert die Laufzeit des Makros erheblich.

  • Datensicherung: Vor dem Anonymisieren der Daten solltest du immer eine Sicherungskopie der Excel-Datei erstellen, um Datenverlust zu vermeiden.

  • VBA-Debugging: Nutze die Debugging-Tools im VBA-Editor, um Fehler schnell zu identifizieren und zu beheben.


FAQ: Häufige Fragen

1. Wie anonymisiere ich Excel-Daten effektiv?
Verwende die oben genannten Methoden, um Namen durch Pseudonyme zu ersetzen. Achte auf Konsistenz in den Daten.

2. Kann ich Excel-Daten anonymisieren, ohne VBA zu nutzen?
Ja, du kannst die Funktion Suchen und Ersetzen verwenden, jedoch ist dies weniger effizient für große Datenmengen.

3. Welche Excel-Version benötige ich?
Die beschriebenen Methoden und das VBA-Makro sind in den meisten Versionen von Excel 2010 und höher verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige