Excel VBA - Schleife einer IF( & VLOOKUP( beginnend mit einer Teilzeichenfolge

Excel VBA - Schleife einer IF( & VLOOKUP( beginnend mit einer Teilzeichenfolge

Guten Tag an eine tolle Community,

Ich versuche, ein Makro zu entwickeln, das zwei Arrays durchläuft. Hier ist ein Beispiel für die Datenstruktur:

Rohdaten finden Sie in C4:C1500

$-Daten befinden sich in D4:D1500

Teilweise aus Rohdaten entnommene Zeichenfolgenwerte befinden sich in E4:E13.

Die Kategorien, in denen die Rohdaten organisiert werden, befinden sich in F4:F13

Unten ist die Formel, die ich als Proof of Concept zusammengestellt habe.

=WENN(SVERWEIS(" * "&E4&" * ",$C$4:$C$1500,1,0)=FEHLER.TYP(#N/A),"Recherche",SVERWEIS(" * "&E4&" * ",$E$4:$F$13,2,0))

Dies funktioniert Zeile für Zeile und nur bis zum Ende der kurzen Listen (ohne eine massive verschachtelte Anweisung zu schreiben). Ich versuche, die Teil- und Kategoriewerte durch die Rohdaten zu schleifen, um die Daten dann nach Kategorie und $ zu analysieren.

Beispiel: Sheet1

Reihe Spalte C (C4:C1500) Spalte D (D4:D1500) Spalte E (E4:E13) Spalte F (F4:F13)
3 Rohdaten $ Teildaten Kategorie
4 210324Verkauf.BobParr.UT 785,54 Abonnieren Verkäufe
5 ABCDEF.210324.SalesHelenParr.TN 214,46 HelenParr Verkäufe
6 DashParr.WY.RR.210324 238,56 DashParr Forschung
7 Mgmt.NY.JackJackParr.210324 1.200,00 JackJackParr Management

Blatt 2:

Reihen Spalte B (B4:B13) Spalte C (C4:C13)
3 Kategorie Gesamtsumme $
4 Verkäufe 1.000,00
5 Forschung 238,56
6 Management 1.200,00

Von dort aus führe ich eine weitere SVERWEIS-Funktion aus, um die in Tabelle 2 gefundenen Ausgaben zu summieren.

Ich bin für alle Vorschläge zur Bereinigung der Testformel offen und für jede Unterstützung mit VBA dankbar.

Danke schön.

Richard VO

Antwort1

Ich sehe keine Notwendigkeit, VBA zu verwenden. Wenn Sie Excel 365 haben, können Sie die Funktionen FILTER, CHOOSECOLS und SUM kombinieren, um die gewünschten Ergebnisse zu erhalten. Passen Sie die folgende Formel an:

=SUM(CHOOSECOLS(FILTER(Sheet1!$C$2:$F$5,Sheet1!$F$2:$F$5=Sheet2!$B3),{2}))

Verringern Sie die Formel, um die anderen Zellen auszufüllen.

verwandte Informationen