Excel-Formel - SVERWEIS oder ähnliches?


02.07.2024, 14:19

So sollte es dann aussehen.

3 Antworten

Also in Spalte G soll zu jeder BelegNr. immer die ArtikelNr. erscheinen, die als "Verbrauch" verbucht ist? Was, wenn es zu einer BelegNr. nur eine IstMeldung und keinen Verbrauch gibt? (Z.B. BelegNr. FA2019004 oder oder SA2008664)

Wenn immer abwechselnd Verbrauch und IstMeldung untereinander stehen, würde ich diese Formel nehmen:

=WENNS(C2="Verbrauch";E2;C1="Verbrauch";E1;WAHR;"")

Die schaut, ob in der aktuellen Zeile "Verbrauch" steht. Wenn ja, übernimmt sie den Wert aus Spalte E. Ansonsten schaut sie in der Zeile oben drüber, ob da "Verbrauch" steht und übernimmt die entsprechende Artikelnr. Wenn beides nicht zutrifft, wird die Zelle leer gelassen.


Schnageli 
Beitragsersteller
 02.07.2024, 14:25

Auch nicht ganz. In Spalte G soll zu bei "Verbrauch" die Artikel-Nr. von "Istmeldung" stehen und umgekehrt - soweit die Belegnummern von "Vebrauch" und "Istmeldung" identisch sind.

0
daCypher  02.07.2024, 14:52
@Schnageli

Ach so, dann so:

=WENNS(
    UND(C2="Verbrauch";C3="IstMeldung");E3;
    UND(C2="IstMeldung";C1="Verbrauch");E1;
    WAHR;""
)

Die Formel funktioniert so einfach aber nur, wenn Verbrauch und IstMeldung für jede Belegnummer direkt untereinander stehen. Wenn die auch völlig durcheinander sein können, müsste man eine kompliziertere Formel mit der Filterfunktion bauen.

0
Schnageli 
Beitragsersteller
 02.07.2024, 15:44
@daCypher

Lieben Dank, aber auch erstmal nur "nah dran" :-)

Ich habe die Formel jetzt mal auf meine Tabelle umgeschrieben (C2 in C41 geändert etc.) und dann würde die so aussehen:

=WENNS(UND(C41="Verbrauch";42="IstMeldung");E41;UND(C42="IstMeldung";C41="Verbrauch");F42;WAHR;"")

Dann sieht es fast gut aus - Excel schreibt jetzt in die Zeile "Verbrauch" die Artikel-Nr. der "Istmeldung" - jetzt fehlen dann nur umgekehrt die Einträge in der Zeile "Istmeldung". Da soll ja dann die Artikel-Nr. von "Verbrauch" rein.

0
daCypher  02.07.2024, 15:53
@Schnageli

Da sind ein paar kleine Fehler in deiner Übersetzung.

So müsste es passen:

=WENNS(
    UND(C41="Verbrauch";C42="IstMeldung");E42;
    UND(C41="IstMeldung";C40="Verbrauch");E40;
    WAHR;""
)

Beachte die 40 gar nicht. Die wird in deiner Tabelle wahrscheinlich auf eine Überschriftenzeile verweisen, aber beim runterkopieren werden die Zahlen richtig erhöht.

0
Schnageli 
Beitragsersteller
 03.07.2024, 07:42
@daCypher

Hallo daCypher, ganz lieben Dank für Deine Mühe. Es passt leider so immer noch nicht ganz, aber ich versuche mal, mich anhand der Formel ein wenig selber durchzuwurschteln :-).

Nochmal tausend Dank!!

0
daCypher  03.07.2024, 07:58
@Schnageli

gerne 😊

Falls du nicht weiterkommst, kannst du ja gerne nochmal eine Frage stellen. Ich hab noch eine Idee für eine andere Formel, die aber deutlich rechenintensiver ist und dadurch länger braucht.

0
Schnageli 
Beitragsersteller
 03.07.2024, 08:05
@daCypher

Ich schau mal, wie weit ich komme und ansonsten bin ich direkt wieder bei Dir :-)

0

auch wenn ich @daCypher und @gfntom seine Lösung bevorzugen würde hier nochmal eine Variante die in einigen wenigen Anwendungsfällen Vorteile hätte:

=wennfehler(ZEILENWAHL(SPALTENWAHL(
FILTER(Tabelle1[[Postenart]:[AritkelNr.]];
([BelegNr]=[@BelegNr])*
(WENN([@Postenart]="Istmeldung";[Postenart]="Verbrauch";[Postenart]="Istmeldung"));"")
;3);1);"keine gültigen Daten gefunden")

Bild zum Beitrag

Ich hab hier mal nur die letzten 3 Belge genommen, da erst dort Unterscheidungen (bei dir F, bei mir C) kamen.

Vorteil hier ist, dass wenn du mehrere Meldungen hast, die einem Verbrauch zugeordnet werden können, auch wenn die nicht direkt untereinander stehen.

Wie man in Zeile 8 erkennen kann. wird automatisch der passende Wert der Postenart Verbrauch mit der Belegnummer ****34 verknüpft.

In Zeile 9 habe ich mal eine Eintragung gemacht die es noch nicht gibt, dann bei mir definierten Text.

Filter

Der Filter filtert den angegebenen Bereich der Tabelle auf bestimmte Kriterien in deinem Falle auf Gleichheit der Belegnummer und vergleicht ob in der Postenart Istmeldung steht oder nicht (wennformel). Als Datensatz käme hier also für die Zeile 2 raus:

Istmeldung;SA20008634;1030

Spaltenwahl

durch Spaltenwahl lasse ich mir das Ergebnis der 3. Spalte ausgeben also wird der og. Datensatz zu 1030

Zeilenwahl

Ist nur dann Notwendig wenn Daten mehr als 2x vorhanden sind, wie z.B. in Zeile 8, hier würde der Filter sonst 2 Zeilen ausgeben wollen was zu dem Fehler #Überlauf führt, daher Zeilenwahl 1, somit zwinge ich ihn immer nur eine Zeile auszugeben.

Wennfehler

Definiert nur eine Text wenn der Filter keine Daten finden konnte, sprich der Fehler #wert oder #nv oder ähnliches ausgegeben werden würde.

Woher ich das weiß:Berufserfahrung – sowohl Beruf als auch Hobby
 - (Formel, Microsoft Excel, Excel-Formel)

Schnageli 
Beitragsersteller
 05.07.2024, 07:00

Ganz lieben Dank!!

0

Wenn ich dich richtig verstanden habe, reicht dafür eine Einfache WENN-Funktion in Spalte G:

=WENN(UND(E41=E42;C41="Verbrauch");F41;WENN(UND(E41=E42;C41="Istmeldung");F42;""))

Die Formel dann nach unten ziehen


Schnageli 
Beitragsersteller
 02.07.2024, 14:20

Passt leider nicht wirklich. Zum besseren Verständnis habe ich jetzt mal "zu Fuß" das in Spalte G reingeschrieben, was dann eigentlich automatisch gehen soll und als Bild nochmal in die Frage geladen.

0
gfntom  02.07.2024, 14:56
@Schnageli

Das ist aber nicht, was du beschrieben hast.

Einmal vergleichst du E41 und E42 und schaust in C41 nach, einmal vergleichst du E41 und E42 und schaust in C42 nach.

Ist mir nicht klar, wovon das abgeleitet werden soll, kann dir also deswegen nicht weiterhelfen.

0