LookUP-Wert, der mehrere verkettete Werte zurückgibt

409

Ich habe zwei Spalten, eine ist eine "Kategorie" mit einem einfachen Code und die andere Spalte mit dem Namen "Baum- / Gruppenqualitäten" mit einer oder vielen der folgenden Kategorien, die, wenn mehrere, mit Kommata verkettet sind, siehe Beispiel

LookUP-Wert, der mehrere verkettete Werte zurückgibt

Ich brauche diese Spalte L

LookUP-Wert, der mehrere verkettete Werte zurückgibt

Geben Sie einen Wert ein, der aus dem Kategoriecode (A, B, C oder U) und einer von diesem abhängigen Zahl / mehreren Nummern (1 bis 3) besteht

LookUP-Wert, der mehrere verkettete Werte zurückgibt

So würde zum Beispiel im ersten Bild die erste Zeile mit Daten in meine Spalte L ('CAT') als "B, 2,3,1" übersetzt.

Ich habe mit = VLOOKUP versucht, kann aber nur das erste Match erhalten. Ich denke, dass Erstellen und Array die Lösung sein könnten, aber ich denke, ich brauche ein paar Ratschläge dazu.

1
Möglicherweise können Sie COUNTIF in Excel verwenden, um die Anzahl der Zeilen zu zählen, die jeden Wert enthalten. Über wie viele Reihen sprechen wir und wie oft müssen Sie das tun? Könnte einfach Textfilter für jeden "enthält" -Wert für eine schnelle Summation oder sogar für eine Pivot-Tabelle verwenden. vor 6 Jahren 0
Ich bekomme solche Rohdaten, die einer individuellen Analyse bedürfen, aber es gibt nicht mehr Kombinationen als Kategorien (A bis U) und nicht mehr "Qualitäten" als die auf den Bildern gezeigten. Es gibt Dutzende von Registerkarten, bei denen viele andere Berechnungen gleichzeitig ausgeführt werden. Daher muss dies automatisch geschehen und eine verkettete Spalte gefüllt werden vor 6 Jahren 0
Kennen Sie Python? Ich denke, das wäre eine einfachere Methode zur Automatisierung. vor 6 Jahren 0
Ich bin leider nicht dabei, und ich versuche, jede Berechnung in der Kalkulationstabelle mit einfachen Excel-Formeln und VBA zu verknüpfen vor 6 Jahren 0
Haben Sie das Super User StackExchange-Forum ausprobiert? https://meta.stackexchange.com/questions/155487/if-i-had-a-question-with-excel-was-site-would-i-use vor 6 Jahren 0

2 Antworten auf die Frage

1

Ich habe eine Problemumgehung gefunden. nicht sehr effizient oder klug, aber es funktioniert.

Im Grunde habe ich ein Array mit allen möglichen Kombinationen der drei Elemente erstellt und eine weitere Spalte mit dem richtigen Code hinzugefügt, der abgerufen werden sollte.

Mit der folgenden Formel können Sie nun Excel für jeden einzelnen Wert vorbereiten und seinen Code in der Spalte basierend auf einem Macth finden

= IF (Bäume! AC2 <> "", VLOOKUP (Bäume! AC2, QUALITIES_ARRAY, 2, FALSE), "")

Ich hoffe es hilft

1
Stefan_Fairphone

Ich habe eine funktionierende Lösung. Drücken Sie Alt+ F11, um den Visual Basic-Editor aufzurufen, erstellen Sie ein neues Modul und fügen Sie diesen Code ein. Sie werden in der Lage, die verwenden CATFunktion in jeder Zelle wie folgt aus : =CAT(category,qualities).

' Function that expects a quality and returns the respective code ' Important: Tick check box beside "Microsoft Scripting Runtime" in Tools > References Function lookup_code(ByRef quality) Dim dict As New Scripting.Dictionary dict.Add "Arboricultural", "1" dict.Add "Landscape", "2" dict.Add "Cultural_and_Conservation", "3" lookup_code = dict(quality) End Function  ' Function to output the concatenated CAT code ' Use in any Excel cell as `=CAT(category, qualities)` ' Expects a category (e.g. "A") and a string of one or more qualities, separated by a comma Function CAT(category, qualities) Dim code As String If InStr(qualities, ",") > 0 Then ' Check for commas Dim QualityArray() As String QualityArray = Split(qualities, ",") ' Split string at commas For Each q In QualityArray code = code & "," & lookup_code(q) ' match code to quality Next Else code = "," & lookup_code(CStr(qualities)) End If CAT = category & code ' return category and codes (e.g. "B,2,3,1") End Function