Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben

Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 08:53:45
Cornelia
Hallo!

Ich habe mehrere Listen mit Artikeln, Preisen und Einheiten und möchte die nun für den Import in ein ERP System auf eine Liste zusammenfügen.

Es könnte in Einzelfällen sein, dass eine Artikelnummer auf mehreren Listen steht - im blödesten Fall mit unterschiedlichen Angaben - weshalb ich zuerst einen Abgleich machen möchte, ob die Daten zusammenpassen, falls sie mehrfach vorkommen. Deshalb hab ich in meine Importdatei mehrere Spalten eingefügt und mit Sverweis jeweils aus jeder Liste die Preise und Einheiten geholt. Natürlich kommt nicht jeder Artikel in jeder Liste vor.

Jetzt ist aber das Ziel, eine Liste daraus zu machen mit 1 Artikelnummer, daneben 1 Preis und 1 Einheit und falls es die nicht gibt, weil Daten in den Listen ungleich sind, dann "FEHLER" oder sowas.

Ich stell mich in Excel normal nicht so dumm an und kann auch komplizierte verschachtelte Formeln schreiben. Aber das erwartete Verhalten krieg ich einfach nicht hin, besonders bei der Einheit weil das nunmal ein Text ist und ich mit Wenn>0 nicht weiterkomme. und auch mit AGGREGAT nicht arbeiten kann (oder ich komm eben nicht drauf, WIE).

Beispieldatei:
https://www.herber.de/bbs/user/166985.xlsx

Für eure Hilfe wäre ich sehr dankbar!

lg
Cornelia

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 09:44:19
ReginaR
Hi, das sollte mit WennFehler zu erreichen sein, z.B.:
=WENNFEHLER(SVERWEIS(A2;'Liste C'!$A$2:$C$5;3;FALSCH);"Fehler")

Gruß Regina
AW: Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 09:48:35
Cornelia
Hallo!
Danke für deine Antwort, aber diese Formel sucht doch nur in Liste C und vergleicht nicht die gefundenen Werte aus allen Listen, oder?
AW: Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 09:53:21
ReginaR
Hi,
die Formel sollte nur ein Beispiel sein, wie WennFehler eingesetzt wird. Du müsstest alle Deine Sverweise in WennFehler einschachteln, wenn Du statt #NV etwas anderes da stehen haben möchtest. Oder habe ich da Deine Frage falsch verstanden?

Gruß Regina
AW: Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 09:59:14
Cornelia
Ich vermute, du hast die Frage falsch verstanden. Wirklich klar wird es glaub ich nur durch die Beispieldatei :)
Anzeige
AW: Spalten trotz NV vergleichen->Wert oder FEHLER ausgeben
12.02.2024 10:25:13
ReginaR
...ok, ich versuchs nochmal (jetzt habe ich es glaube ich durchschaut):

Fü den oberen Block:
=WENN(SUMME(WENN(HÄUFIGKEIT(C2:E2;C2:E2)>0;1))>1;"Fehler";MIN(C2:E2))


Gruß Regina
oberer Block gelöst... das Ausgeben vom Text noch nicht
12.02.2024 10:31:46
Cornelia
In Kombi mit Wennfehler bei den Sverweisen hat das im oberen Block geklappt! Vielen herzlichen Dank!

Jetzt bräuchte ich nur noch eine Lösung für das schwierigere Problem... nämlich den unteren Block wo er den Text ausgeben soll :)
AW: oberer Block gelöst... das Ausgeben vom Text noch nicht
12.02.2024 13:39:57
Michael
Hallo Cornelia,

für den oberen Block geht es auch ohne WENNFEHLER um Deine SVerweise. Nach F2 einfügen, runterziehen:
=WENN(SUMME(--ISTFEHLER(C2:E2))>1;AGGREGAT(9;6;C2:E2);"#PREIS")


Im unteren Teil geht diese Formel, nach F16 einfügen und runterziehen. Wahrscheinlich noch irgendwie optimierbar, ich war froh, dass es geht..:
=WENN(SUMME(--ISTFEHLER(C16:E16))>1;WENNNV(C16;"")&WENNNV(D16;"")&WENNNV(E16;"");WENN(SUMME(ZÄHLENWENN(C16:E16;C16:E16))>3;INDEX(C16:E16;1;AGGREGAT(15;6;SPALTE($A:$C)/WENN(ISTFEHLER(C16:E16);0;1);1));"#EINHEIT"))


Ich hoffe, das funktioniert alles mit Deiner Excel-Version.

Viele Grüße
Michael
Anzeige
AW: oberer Block gelöst... das Ausgeben vom Text noch nicht
13.02.2024 08:54:59
Cornelia
Danke für Deine Mühe!

Leider bekomme ich da nur #ZAHL. Kann die Funktion Aggregat überhaupt mit Nicht-Zahlen umgehen?
AW: oberer Block gelöst... das Ausgeben vom Text noch nicht
13.02.2024 12:59:33
Michael
Hallo Cornelia,

das ist komisch. Hier mal Deine Datei, in die ich die Formeln eingebaut habe:
https://www.herber.de/bbs/user/167025.xlsx
Steht da bei Dir auch nur #ZAHL?

Nein, Aggregat kann nicht mit Texten umgehen, dass tut es aber auch nicht ;-)
SPALTE($A:$C)/WENN(ISTFEHLER(C16:E16);0;1))
ist am Ende eine oder mehrere Zahlen. Siehe dazu https://www.herber.de/excelformeln/pages/AGGREGAT__die_Unvollendete.html
gleich das erste Beispiel unten bei "Erläuterungen".
Problem könnte sein, dass Du in Wirklichkeit mehr Listen hast als im Bespiel. Dann müsste Verschiedenes an der Formal angepasst werden.

Viele Grüße
Michael
Anzeige
DANKE! Es klappt
13.02.2024 13:14:44
Cornelia
Okaaay...ja ich hab tatsächlich viel mehr Tabellenblätter als im Beispiel, aber in der Beispieldatei geht es jetzt. Ich denke das Anpassen werd ich hinbekommen.

Danke danke danke!

Ab "Index" verstehe ich noch nicht so ganz was die Formel tut, trotzdem ich dem Link nun gefolgt bin und das gelesen hab, aber vielleicht komm ich noch drauf, wenn ich mich etwas damit spiele.
AW: DANKE! Es klappt
13.02.2024 15:59:26
Michael
Hallo Cornelia,

mit mehr als drei Spalten muss schon das erste ">1" anders. Wenn es mehr als einen Fehler gibt, baut die Formel einfach die drei Texte zusammen. Bei drei Texten bleibt dann einer übrig.
Das ZÄHLENWENN(C16:E16;C16:E16))>3 wird dann so auch nicht mehr stimmen...die Bereiche (je drei Zellen) müssen größer und ">3" wird dann nicht mehr reichen, versuche es mit der tatsächlichen Anzahl der Zellen in den vergrößerten Bereichen.
Spalte(A:C) ist nichts weiter als 1, 2, 3. Die werden geteilt durch WENN(ISTFEHLER(C16:E16);0;1), also geteilt durch Nullen oder Einsen. Geteilt durch 0 geht nicht, gibt also einen Fehler der vom Aggregat(..., 6,...,...) abgefangen wird. In Zeile 16 wären es also schließlich diese Divisionen: 1/1, 2/#DIV0!, 3/#DIV0!. 1 bleibt übrig, das ist der Spaltenindex für INDEX. Bleiben mehrere gültige Werte übrig, nimmt Aggregat(15,....,1) den kleinsten.
Bei mehr als drei Spalten musst Du Spalte(A:C) der Breite des Bereiches in ISTFEHLER(C16:E16) erweitern, den ersten Parameter von Index ebenfalls entsprechend.

Ich komme spontan nicht auf eine allgemeine Lösung, der die Anzahl der Spalten egal ist, will da aber gerne nochmal grübeln.

Viele Grüße
Michael
Anzeige
AW: DANKE! Es klappt | Aber nicht mit mehr als drei Spalten!
13.02.2024 20:53:32
Michael
Hallo Cornelia,

schon für fünf Listen kriege ich diese Formel nicht angepasst, insbesondere nicht die Bedingung im zweiten Wenn. Auch will es mir nicht gelingen, gültige Einheiten (also nicht die Fehlerwerte) miteinander zu vergleichen. Für drei klappt das prima, für mehr braucht es einen anderen Ansatz, auf den ich nicht komme...

Es ist nicht so, dass es mit Excel nicht geht, aber vielleicht wirklich erst mit einer neueren oder anderen Version. Das hier z.B.:
=WENN(ANZAHL2(EINDEUTIG(TEXTTEILEN(TEXTVERKETTEN("ÿ";;WENNFEHLER(C16:G16;""));"ÿ");1))=1;EINDEUTIG(TEXTTEILEN(TEXTVERKETTEN("ÿ";;WENNFEHLER(C16:G16;""));"ÿ");1);"#EINHEIT")

bzw. ohne alles doppelt zu "berechnen":
=LET(EinheitenOhneFehler;EINDEUTIG(TEXTTEILEN(TEXTVERKETTEN("ÿ";;WENNFEHLER(C17:G17;""));"ÿ");1);EinheitenEindeutig;ANZAHL2(EinheitenOhneFehler)=1;WENN(EinheitenEindeutig;EinheitenOhneFehler;"#EINHEIT"))

funktioniert mit meinem Excel prima! Deins versteht das nicht, meine ich. Das hatte ich nie.

Sorry, ich stell die Frage wieder auf offen.

VG Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige