Excel: KI generiertes LET-Formelproblem beim Teilstring-Abgleich

Mindfork

Cadet 4th Year
Registriert
Aug. 2014
Beiträge
106
Hi auch,


ich habe hier ein Problem an dem ich feststecke. Momentan bearbeite ich eine Excel-Datei mit Hilfe der KI, welche mir diverse Formeln ausgibt.

Jedoch hängt die KI und damit auch ich an einer Stelle fest:

Bezeichnungen zum Zweck der Veröffentlichung von mir geändert

Mein Text in [@Artikel] aus der Tabelle: Absätze_September enthält Markenbezeichnungen und/oder Extras („CM® CAR³ …“), während tbl_Shop[Artikel] „Kurzbegriffe“ nutzt („CAR 3“, „12m USB 30.0 Kabel“, „Handyhalter“ …).

Die KI hat folgende Lösung empfohlen, zitat:

Inline-Normalisierung + fuzzy Match auf tbl_Shop[Artikel], ohne LAMBDA/Helper-Tabellen. Zusätzlich fallback über SKU (z. B. …TABLET… → „TABLET“).
Einmal-Prinzip (im LET-Block)
  1. Artikeltext säubern (entferne ®, ersetze ³ → 3, Trim).
  2. Versuche Teilstring-Treffer gegen tbl_Shop[Artikel].
  3. Falls kein Treffer: SKU-Regeln (CY, CB, CAR 3, TABLET, MOBILE, T, TR, MATTE, USB).


Dabei gab die KI mir folgenden Code aus:
Code:
=LET(
 a;[@Artikel];
s;[@SKU];
 a1;GLÄTTEN(WECHSELN(WECHSELN(a;"®";"");"³";" 3"));
 kArr;tbl_Shop[Artikel];
 kHit;WENNFEHLER(INDEX(kArr;VERGLEICH(WAHR;ISTZAHL(SUCHEN(kArr;a1));0));"");
 key;WENN(kHit<>"";kHit;
      WENN(ISTZAHL(SUCHEN("C";s));"C";
      WENN(ISTZAHL(SUCHEN("CA";s));"CA";
      WENN(ISTZAHL(SUCHEN("CAR3";s));"CAR 3";
      WENN(ODER(ISTZAHL(SUCHEN("C2";s));ISTZAHL(SUCHEN("T";s)));"TBE";
      WENN(ISTZAHL(SUCHEN("MOBILE";s));"Handyhalter";
      WENN(ISTZAHL(SUCHEN("TABLET";s));"Tablethalter";
      WENN(ISTZAHL(SUCHEN("TRAY";s));"Aschenbecher";
      WENN(ISTZAHL(SUCHEN("MATTE";a1));"XXXL Matte";
      WENN(ISTZAHL(SUCHEN("USB 3.0";a1));"1,8m USB 3.0 Kabel";""))))))))));
 XVERWEIS(key; tbl_Shop[Artikel]; tbl_Shop[Fixkosten]; "")
)

Dieser Hängt, laut Excel, an der Stelle:
Code:
s;[@SKU];
fest, Frage ist nur wie korrekt die Fehlerausgabe von Excel ist.

Dynamisch ist der Code durch eine fixierte Wenn-Suche zwar nicht, aber ich habe leider auch keine Ahnung von Excel und seinen Formeln, daher ist das erstmal das Einzige was mir zur Verfügung steht.

Ich möchte eigentlich nur, dass die Zeile automatisch die richtige Zuweisung ermittelt und mir daraus die Fixkosten zum Korrekten Artikel zurückgibt.

Die Logik der KI war folgende:
Zuerst wird geschaut, ob der Artikeltext (Absätze September) zu einem Eintrag aus tbl_Shop[Artikel] passt ( wobei ein Teiltreffer genügt). Wenn es dort keinen Treffer gibt, sollen Stichwörter aus Artikel oder SKU (Absätze September) den Key bestimmen – in meinem Beispiel soll das Wort „TABLET“ dazu führen, dass der Key „Tablethalter“ gewählt wird. Mit diesem Key sollen dann die Fixkosten aus tbl_Shop geholt werden. Wenn gar nichts passt, soll ein klarer Standardwert (leer oder „Unbekannt“) ausgegeben werden.

Jemand eine Idee wo das Problem ist? Klammerfehler oder irgendetwas in der Syntax selbst? Wäre über jede Hilfe sehr dankbar!
 

Anhänge

Nutze mal einen anderen Variablennamen für „s.“ Es kann durchaus sein, dass Excel das „s“ als Spaltenbezug interpretiert, das in der LET Funktion dann zu einem Namenskonflikt führt.

Generell immer aussagekräftige Variablennamen in LET nutzen und keine einzelne Buchstaben. Auch wenn „a“ anscheinend nicht als Zellbezug interpretiert sondern als Variablennamen erkannt wird und Spaltenreferenzen in LET überschrieben werden, gilt das nicht für alle Buchstaben.

Excel prüft ob einzelne Buchstaben mit der R1C1-Notation oder anderen Bereichsformaten kollidiert. Problematisch wäre hier auch C oder R, da diese Buchstaben bei der R1C1 Notaion für relative und absolute Zellbezüge verwendet werden. S könnte für „Special“ reserviert sein o.ä.

Nenne es z.B. einfach „sku“. Damit kann man auch mehr anfangen als Variablennamen als mit s.
 
  • Gefällt mir
Reaktionen: Poink
@SKu Danke dir, das hat es gelöst. Da wär ich nie im leben drauf gekommen....

Und die KI auch nicht xD
 
  • Gefällt mir
Reaktionen: futzi
Zurück
Oben