Gegenüberstellung Zeile für Zeile
#1
Hallo Zusammen, 
ein neues Jahr ein neues Problem für mich Smile

Ich habe eine Excel Tabelle mit Daten aus einer Inventur
Spalte A-C ist das Ergebnis vor und Spalte E-G ist das nach der Inventur. 
D ist nur ein Trenner.
Ich möchte gerne haben das die Artikel Nr. in jeder Spalte mit der anderen in einer Zeile steht. 

Da es eine sehr große Liste ist brauche ich dafür sehr lange zu Fuß, habt ihr vielleicht einen Lösungsvorschlag wie das einfacher gehen kann?

Ich hänge mal eine Beispieldatei an. 

In der Tabelle Ursprung ist die Tabelle unsortiert, in der Tabelle Ergebnis so wie ich Sie brauche. 

Vielen Dank für Eure Hilfe.

Die Wenn Formel benötige ich nicht.


Angehängte Dateien
.xlsx   Gegenüberstellung Beispiel.xlsx (Größe: 14,04 KB / Downloads: 26)
Antworten Top
#2
Hi
kopiere die Inventarnummern von A unter die Spalte E und die Inventarnummern von E unter die Spalte A
führe dann mit der Spalte A die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN aus und danach mit der Spalte E
Sortiere dann die beiden Blöcke (A:C und E:G) nach der Artikelnummer
Gruß Daniel
Antworten Top
#3
Ich habe mir die Datei jetzt nicht angeschaut - und slowboarder gibt eigentlich immer die richtige Antwort.

Für den Fall, dass man zwei Listen vergleichen möchte und deren gleiche Inhalte nebeneinander stellen möchte, wäre aber auch noch dies möglich:

http://xxcl.de/0052.htm
Antworten Top
#4
Augenscheinlich sieht das gut aus, 
ABER er zerschiesst bei manchen Zeilen die Bestände. 

Ich weiss nich warum.
Antworten Top
#5
(13.01.2026, 10:22)Monsterbabe schrieb: Ich habe eine Excel Tabelle mit Daten aus einer Inventur
Spalte A-C ist das Ergebnis vor und Spalte E-G ist das nach der Inventur. 
Dann können wir davon ausgehen das es in Spalte A und E keine Duplikate gibt.

I2:  =VERGLEICH(E2;A:A;0)
runterziehen.

Alle Zeilen die einen Fehler anzeigen kommen in Spalte A nicht vor.

J2:  =INDEX(A:A;$I2)
nach rechts ziehen bis L2, dann alle runterziehen.

In Spalte L steht nun die Menge aus Spalte C.

M2:  =G2-L2
runterziehen und Du hast die Differenz vor/nach der Inventur.

Alles klar?

Andreas.
Antworten Top
#6
(13.01.2026, 12:36)Monsterbabe schrieb: Augenscheinlich sieht das gut aus, 
ABER er zerschiesst bei manchen Zeilen die Bestände. 

Ich weiss nich warum.

tja ich auch nicht.

kann es sein, dass in den Ausgangsdaten innerhalb eines Blocks die Artikelnummern mehrfach vorkommen(vielleicht auch nur als Tippfehler)?
bei meiner Methode darf das nicht sein. 
Innerhalb eines Blocks muss die Artikelnummer eindeutig sein, das müsstest du vorher sicherstellen.
Dabei kann dir die Bedingte Formatierung helfen.

Gruß Daniel
Antworten Top
#7
Hallo

hier mal eine VBA Lösung mit Prüfung auf Zeilengleichheit.
Die Daten müssen zuvor von Hand in Ergebnis Tabelle kopiert werden!
Du kannst deine Daten von der Original Datei in die Beispieldatei laden.
Bin gespannt ob dir diese Lösung weiterhilft.

mfg Gast 123


Angehängte Dateien
.xlsm   Gegenüberstellung Beispiel.xlsm (Größe: 25,34 KB / Downloads: 6)
Antworten Top
#8
Hi
es gibt noch andere Wege:

a) Hol dir mit dem SVerweis die Werte aus der einen Tabelle in die andere Tabelle

b) Vereinige beide Tabellen zu einer. Vorher fügst du aber noch eine Spalte ein, in welcher du kennzeichnest, ob es die alte Liste ist oder die neue.
Dann kannst du die Gegenüberstellung der Werte für jede Artikelnummer mit Hilfe einer Pivottabelle machen.

Gruß Daniel
Antworten Top
#9
Hallo,

in einem modernen Excel - nicht Excel 2016 - lässt sich das ggf. mit einer Formel lösen. In der Ergebnistabelle ...

Code:
J2=LET(vnDaten; Ursprung!$A$2:$C$31;
       vnInventur; Ursprung!$E$2:$G$31;
       vnArtikel; LET(A; EINDEUTIG(VSTAPELN(INDEX(vnInventur; 0; 1); INDEX(vnDaten; 0; 1)));
                      N; WENNFEHLER(VERGLEICH(A; INDEX(vnInventur; 0; 1); 0); 0);
                      P; WENNFEHLER(VERGLEICH(A; INDEX(vnInventur; 0; 1); 1); 0);
                         SORTIERENNACH(A; WENN(N > 0; N; P); 1));
       fnMatrix; LAMBDA(Artikel; Daten;
                        MAP(SEQUENZ(ZEILEN(Artikel); 1) * SEQUENZ(1; SPALTEN(Daten); 1; 0);
                            SEQUENZ(ZEILEN(Artikel); 1; 1; 0) * SEQUENZ(1; SPALTEN(Daten));
                            LAMBDA(X;Y; LET(A; INDEX(Artikel; X; 1);
                                            N; WENNFEHLER(VERGLEICH(A; INDEX(Daten; 0; 1); 0); 0);
                                               WENN(N > 0; INDEX(Daten; N; Y); "")))));
       vnLeerspalte; UNIZEICHEN(SEQUENZ(ZEILEN(vnArtikel); 1; 32; 0));
       HSTAPELN(fnMatrix(vnArtikel; vnDaten); vnLeerspalte; fnMatrix(vnArtikel; vnInventur)))

Liefert für die Beispieldaten das angegebene, gewünschte, Ergebnis. Ob mit mehr Datensätzen bspw. die Sortierung
im Ergebnis dann noch stimmt, müsste dann ggf. getestet werden.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#10
per Power Query. Gegen1.xlsx ist eine andere Herangehensweise - da ist auch die Formel von maninweb drin. Abfragen könnte man auch in einer Abfrage machen. Ist aber übersichtlicher und tut nicht weh.


Angehängte Dateien
.xlsx   Gegen1.xlsx (Größe: 32,23 KB / Downloads: 7)
.xlsx   Gegen.xlsx (Größe: 30,64 KB / Downloads: 7)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste