iceage
Goto Top

Excel - 2 Excel-Listen anhand einer eindeutigen ID verbinden

Hallo Zusammen,

ich habe 2 Excel-Listen (alle.xlsx und monat.xlsx) welche ich gern miteinander verknüpfen möchte. Die Hauptdatei alle.xlsx beinhaltet verschiedene Tabellen unter anderem eine mit dem Namen "01.alle". Hier gibt es wiederum verschiedene Spalten mit dem folgenden Muster:

alle.xlsx
V_Nr     KdNr     Pauschale    Differenz
123456   1415     85,52     
123457   1416     80,21     
123458   1418     50,21
...

Die monat.xlsx schaut folgendermaßen aus und beinhaltet nur eine Tabelle namens Export:
V_Nr     V_Wert1    V_Wert2     V_PAUSCHAL
123456   XXXXX      XXXXXX      85,52 
123457   XXXXX      XXXXXX      44,52 
....

Ziel ist es, dass in der alle.xlsx die Spalte Differenz einen Eintrag mit dem Wert der Spalte V_PAUSCHAL erhält, wenn die beiden Werte sich unterscheiden. Wenn beide Werte identisch sind, reicht der Wert "ok".

Die V_Nr sind eindeutig, tauchen daher nur einmal in den beiden Excel-Dateien auf bzw. in Einzelfällen ist es auch möglich, dass die jeweilige V_Nr nur in der alle.xlsx und nicht mehr in der monat.xlsx auftaucht. Hier wäre es toll, wenn dann der Eintrag "fehlt" in der Spalte Differenz erscheint.

Das Ergebnis auf das obige Beispiel bezogen würde als folgendermaßen ausschauen:
alle.xlsx
V_Nr     KdNr     Pauschale    Differenz
123456   1415     85,52        ok
123457   1416     80,21        44,52
123458   1418     50,21        fehlt
...

Ich versuche mich seit Stunden mit sverweis, komme aber nicht mal annähernd voran.. Könnte mir hier jemand unter die Arme greifen?

Vielen Dank für eure Unterstützung.

Grüße I.

Content-Key: 2827564859

Url: https://administrator.de/contentid/2827564859

Printed on: April 26, 2024 at 08:04 o'clock

Member: StefanKittel
StefanKittel May 18, 2022 at 14:02:12 (UTC)
Goto Top
Hallo,

ich würde in die alle.xlsx die Monate mit einem jeweils einem eigen Tab reinkopieren.
Dann sollte der sverweis viel einfacher sein.

V-Nr, KdNr, Pauschale, Abgerechnet (hier kommt der sverweis rein), differenz (Pauschale-Abgerechnet)

Alternativ auch summewenns wenn es mehrere Einträge sein können.

Stefan
Member: IceAge
IceAge May 18, 2022 at 14:31:29 (UTC)
Goto Top
Hallo Stefan,

danke für deine Antwort. Ich habe es mittlerweile mit svweis geschafft, die Spalte Differenz mit den Werten aus V_PAUSCHAL zu füllen. Ich könnte jetzt eine zusätzliche Spalte erstellen, welche mit Hilfe der wenn-Funktion die gewünschten Ausgaben "44,52" bzw. "ok" bzw. "fehlt" erzeugt. Ginge das nicht auch mit der einen vorhandenen Spalte, sodass die sverweis und die wenn-Funktion in einem abgearbeitet wird?

Grüße I.
Member: ukulele-7
ukulele-7 May 18, 2022 at 14:34:32 (UTC)
Goto Top
Ich würde das alles in eine SQL Datenbank schmeißen und da einen Join machen.

Wie sieht denn der SVerweis bisher aus?
Member: StefanKittel
Solution StefanKittel May 18, 2022 at 14:34:55 (UTC)
Goto Top
Ja, das geht.
=wenn((sverweise(xxxx)-A2)<>0;"ungleich", "OK")  

Würde ich aber nicht machen.
Es wird dadurch unübersichtlicher.

Man kann Spalten auch ausblenden.
Member: IceAge
IceAge May 18, 2022 at 14:36:51 (UTC)
Goto Top
Zitat von @ukulele-7:

Ich würde das alles in eine SQL Datenbank schmeißen und da einen Join machen.

Wie sieht denn der SVerweis bisher aus?

=SVERWEIS(A2;'c:\users\demo\[monat.xlsx]Export'!$A$2:$D$99;4;FALSCH)  
Member: colinardo
Solution colinardo May 18, 2022 at 15:02:25 (UTC)
Goto Top
=WENN(ZÄHLENWENN('c:\users\demo\[monat.xlsx]Export'!$A:$A;A2)>0;WENN(SVERWEIS(A2;'c:\users\demo\[monat.xlsx]Export'!$A$2:$D$99;4;FALSCH)=C2;"ok";SVERWEIS(A2;'c:\users\demo\[monat.xlsx]Export'!$A$2:$D$99;4;FALSCH));"fehlt")  
Grüße Uwe
Member: IceAge
IceAge May 18, 2022 at 15:05:36 (UTC)
Goto Top
Perfekt, das hilft mir weiter.

Vielen Lieben Dank und einen Schönen Abend.

Grüße I.
Member: IceAge
IceAge Jun 23, 2022 at 11:14:06 (UTC)
Goto Top
Mahlzeit,

kleiner Nachtrag/Frage zu dem o.g. Excel-Thema... Ich würde aufgrund der leichteren Pflege die externe Excel-Datei gern in eine Zelle z.B. X1 schreiben und die ganzen sverweise statt mit dem ausgeschriebenen Dateipfad gern über den Inhalt der Zelle X1 realisieren:

Beispiel:
Inhalt der Zelle X1: c:\users\demo\[monat.xlsx]Export

bisheriges Beispiel sverweis:
=SVERWEIS(A2;'c:\users\demo\[monat.xlsx]Export'!$A$2:$D$99;4;FALSCH)  

gewünschtes Ziel:
=SVERWEIS(A2;"$X$1"!$A$2:$D$99;4;FALSCH)  

Leider klappt das so nicht. Kann mir jemand auf die Sprünge helfen?

Vielen Dank und Grüße

I.
Member: colinardo
Solution colinardo Jun 23, 2022 updated at 11:32:57 (UTC)
Goto Top
Indirekt() ist dein Freund.
=SVERWEIS(A2;INDIREKT("'"&$X$1&"'!$A$2:$D$99");4;FALSCH)  
Member: IceAge
IceAge Jun 23, 2022 at 12:29:50 (UTC)
Goto Top
Hallo Uwe.

vielen Dank für deine schnelle Hilfe. Leider klappt das nicht nach dem obigen Muster. Bekomme immer einen "#BEZUG!" - Fehler... Die Zelle X1 habe ich als Text formatiert, erhalte aber immer am Anfang der Zeile ein Hochkomma gesetzt... Könnte dies die Ursache sein? Wenn ja, wie bekomme ich das weg?

Die Alternative wäre den Pfad aus der Zeile in eine Variable (?) zu schreiben und diese anzusteuern. Komme nur leider nicht weiter ...

Grüße I.
Member: colinardo
colinardo Jun 23, 2022 updated at 12:51:49 (UTC)
Goto Top
Probiers jetzt nochmal, s.o. Habe gerade keine Zeit für Tests.
Member: IceAge
IceAge Jun 23, 2022 at 13:00:04 (UTC)
Goto Top
Klappt leider auch nicht ... mach dir keinen Stress, so eilig ist´s nicht.
Member: IceAge
IceAge Jun 24, 2022 updated at 07:38:22 (UTC)
Goto Top
Hallo Uwe,

nach ner langen Nacht hab ich´s durch Probieren folgendermaßen lösen könnnen:

Zelle X1 = c:\users\demo\[monat.xlsx]Export

=SVERWEIS(A2;INDIREKT("'"&$X$1&"'!$A$2:$D$99");4;FALSCH)  

Die monat.xlsx lasse ich direkt beim Öffnen per Makro mitladen, da diese zwingend bei der Funktion INDIREKT geöffnet sein muss.

Vielen Dank für deine Unterstützung.

Grüße I.
Member: colinardo
colinardo Jun 24, 2022 updated at 08:07:26 (UTC)
Goto Top
Zitat von @IceAge:

Hallo Uwe,

nach ner langen Nacht hab ich´s durch Probieren folgendermaßen lösen könnnen:

Zelle X1 = c:\users\demo\[monat.xlsx]Export

=SVERWEIS(A2;INDIREKT("'"&$X$1&"'!$A$2:$D$99");4;FALSCH)  
Öhm, genau so steht's doch in meinen Kommentar oben...

Die monat.xlsx lasse ich direkt beim Öffnen per Makro mitladen, da diese zwingend bei der Funktion INDIREKT geöffnet sein muss.
Normal halt.
Member: IceAge
IceAge Jun 24, 2022 updated at 15:38:31 (UTC)
Goto Top
Puuh, stimmt ... keine Ahnnung warum es vorher nicht per copy&paste ging... hab gestern abend soviel an der Excel-Liste probiert, dass ich mir dabei vermutlich irgendwo nen Fehler eingebaut habe ... hab dann irgendwann mit nem älteren Backup nochmal neu probiert und dann lief es warum auch immer face-smile

Danke für deine Hilfe.