Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zellvergleich - von rechts bis Vorkommnis x

Frage Microsoft Microsoft Office

Mitglied: LoveBoat

LoveBoat (Level 1) - Jetzt verbinden

22.01.2009, aktualisiert 10:22 Uhr, 4506 Aufrufe, 6 Kommentare

Vergleich zweier Tabellen, etwas speziell

Morgen,

ich möchte zwei Tabellen vergleichen.

Die eine Tabelle enthält Dateinamen (Spalte A), die andere enthält die selben Dateinamen inklusive vollständigem Pfad (ebefnalls Spalte A).
Der Vergleich sollte daher in Tabelle 2 von rechts (hinten) ausgehen und lediglich bis zum ersten Vorkommnis des Zeichens "/" durchgeführt werden; die Anzahl der Zeichen variiert nämlich.
Sodann sollten alle ohne Übereinstimmung in Tabelle2 (derjenigen mit Pfadangabe) gekennzeichnet werden.

Gibt es hierfür eine elegante Formel oder ein Makro? Jemand eine Idee?

Vielen Dank!
F.
Mitglied: bastla
22.01.2009 um 10:59 Uhr
Hallo LoveBoat!

Du könnterst das Herausfiltern des Dateinamens aus dem Pfad mit einer "Benutzerdefinierten Funktion" in VBA erledigen und dann mit einem ZÄHLENWENN die Überprüfung durchführen ...

Die "Function" in VBA:
01.
Function DName(Pfad As String) 
02.
If InStrRev(Pfad, "\") > 0 Then 
03.
    DName = Mid(Pfad, InStrRev(Pfad, "\") + 1) 
04.
Else 
05.
    DName = Pfad 
06.
End If 
07.
End Function
Um diesen VBA-Code einzufügen:
  • In der Tabelle mit den Pfadnamen auf das Registerblatt mit dem Tabellennamen rechtsklicken und "Code anzeigen" wählen,
  • im darauf hin geöffneten VBA-Editor das Menü "Einfügen / Modul" verwenden, um ein neues Modul zu erstellen,
  • in das (große) Code-Fenster des Moduls den obigen Code einfügen und
  • den VBA-Editor schließen.

Wenn Du bereits Makros verwendet hast, wird in "Extras / Makro / Sicherheit" vermutlich schon die Sicherheitsstufe auf "Mittel" gesetzt sein, ansonsten müsstest Du das noch nachholen, damit das Makro auch ausgeführt werden kann. Nach dieser Änderung muss Excel beendet und neu gestartet werden.
Die Formel in Excel:
=WENN(ZÄHLENWENN(Tabelle2!$A$1:$A$300;DName(A1))=0;"X";"")
Wie ersichtlich, geht diese Formel davon aus, dass die Dateinamen in den Zellen A1:A300 der "Tabelle2" gesucht werden sollen.

Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 12:57 Uhr
Mh.... So genau schreibe ich die Function rein? Unter Makro->VBA-Editor haut er mir das immer um die Ohre bzw. fragt nach einem Makro-Namen. Bin ich da an der falschen Stelle?
Bitte warten ..
Mitglied: bastla
22.01.2009 um 13:17 Uhr
Hallo LoveBoat!

Und Du hast es auch so versucht wie oben unter "Um diesen VBA-Code einzufügen:" (für ein Excel 2003) beschrieben?

Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 15:27 Uhr
Hallo,

also ich habe das ganze genau der Anleitung nach gemacht.

Habe eine Sache noch nicht ganz verstanden: Wenn ich ein Makro im VBA Editor bspw. in einem Modul verfasse, dann muss ich es doch auch "abfeuern", oder?
Will sagen; ich muss doch dann auch "SUB/USER FORM Ausführen (F5)" gehen, richtig?
Also wenn ich das tue, dann öffnet sich ein Fenster in dem ich ein Makro auswählen soll.

Wenn ich aber nicht auf "Ausführen" gehe, sondern die obengenannte Formel ein gebe, dann passiert auch nichts. Dazu vorallem: Wo muss die Formel rein in A1 Tabelle1 oder in A1 Tabelle2? Oder wo?

Es sind übrigens doch ein paar mehr Stellen: Tab1 hat ca 36.000 und Tab2 ca 15.000.
Bitte warten ..
Mitglied: bastla
22.01.2009 um 16:12 Uhr
Hallo LoveBoat!

Der Code stellt kein zu startendes Makro dar, sondern wird als Funktion "DName()" in der Formel eingesetzt - der Aufruf erfolgt damit automatisch dann, wenn das Formelergebnis (neu) berechnet wird.

Testen kannst Du das, indem Du in eine Zelle (nicht in Spalte A) der Tabelle mit den Pfaden nur eingibst
=DName(A5)
Das Ergebnis der Formel sollte dann der Teil nach dem letzten "\" im Inhalt von A5 sein.

Dazu vorallem: Wo muss die Formel rein in A1 Tabelle1 oder in A1 Tabelle2? Oder wo?
Weder noch - unter der Annahme, dass in A1 bereits der erste Dateipfad steht, war diese Formel für Tabelle1!B1 gedacht - damit soll neben der Zelle A1 ein "X" aufscheinen, wenn der aus dem Pfad extrahierte Dateiname nicht in den Zellen A1:A15000 der Tabelle 2 zu finden ist.

Wenn Deine Pfade erst ab A3 in Tabelle1 und die Dateinamen ab Zelle A4 in Tabelle2 stehen, dann eben in B3
=WENN(ZÄHLENWENN(Tabelle2!$A$4:$A$15000;DName(A3))=0;"X";"")
Grüße
bastla
Bitte warten ..
Mitglied: LoveBoat
28.01.2009 um 11:52 Uhr
Hallo,

Vielen Dank für deine Hilfe.
Mir ist allerdings nochein Denkfehler aufgefallen; Bevor ich diesen Vergleich zweier Listen machen kann müssen beide Listen zunäcsht auf Dubletten hin überpüft (und diese markiert) werden.
Für die Liste ohne Pfadangabe ist das kein Problem, da sich die Zellen bei doppeltem Auftreten ja zu 100% entsprechen.
Für die andere Liste ist es aber ein Problem, da sich nur die Dateinamen, nicht aber die PFade (also wieder nur bis zum ersten "\" von rechts) entsprechen.

Erst wenn ich das gemacht habe kann ich den obengenannten Vergleich beginnen.

Hast du dafür auch eine Idee?

Viele Grüße,
F.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...