Zählen von Wörtern mit Häufigkeit
#11
Vielen Dank!
Ich werde es morgen früh versuchen und melde mich.
Top
#12

.xlsx   Test Anzahl.xlsx (Größe: 18,48 KB / Downloads: 8)

Moin,

also es funktioniert fast...

Das Problem ist, dass er Einträge nicht zusammenzählt, wenn sie in einer Zeile mit Komma getrennt sind.
Steht in einer Zeile jeweils nur ein Wert, zählt er das gut zusammen.

Ich habe mal einen Teil der Tabelle angefügt. Da ist das Problem mit dem Komma in der Zeile zu erkennen.

Grüße
Tobi
Top
#13
Hi

Ersetze den alten Code durch diesen.
Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Gefilterte Zeilen" = Table.SelectRows(Quelle, each ([Liste] <> null)),
    #"Spalte nach Trennzeichen teilen" = Table.ExpandListColumn(Table.TransformColumns(#"Gefilterte Zeilen", {{"Liste", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Liste"),
    #"Abgeschnittener Text" = Table.TransformColumns(#"Spalte nach Trennzeichen teilen",{{"Liste", Text.Trim, type text}}),
    Getrennt = Table.SplitColumn(#"Abgeschnittener Text", "Liste", Splitter.SplitTextByDelimiter("x ", QuoteStyle.Csv), {"Liste.1", "Liste.2"}),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Getrennt, "Benutzerdefiniert", each if [Liste.2] = null then [Liste.1]
else
[Liste.2]),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"Liste.2"}),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Entfernte Spalten",{{"Liste.1", type number}}),
    #"Ersetzte Fehler" = Table.ReplaceErrorValues(#"Geänderter Typ", {{"Liste.1", 1}}),
    #"Gruppierte Zeilen" = Table.Group(#"Ersetzte Fehler", {"Benutzerdefiniert"}, {{"Anzahl", each List.Sum([Liste.1]), type number}})
in
    #"Gruppierte Zeilen"

Dazu gehst du in PowerQuery in den Erweiterter Editor. Siehe Link.

https://docs.microsoft.com/de-de/power-b...ced-editor

Gruß Elex
Top
#14
Ich glaube es hat geklappt....
Sehr cool!
Vielen, vielen Dank!!!!
Top
#15
Wie bitte ?? :21: 

Diese UDF reicht schon aus:


Code:
Function F_snb(sn, c00)
   st = Filter(Split(Join(Application.Transpose(sn.Value), ","), ","), c00)
   
   For j = 0 To UBound(st)
     y = y + Val(st(j)) - (Val(st(j)) = 0)
   Next

   F_snb = y
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#16
Hi @snb
 
Ich versuche mich gerade etwas an PQ.
Die reine Syntaxlänge würde sich deutlich Verkürzen lassen wenn man für die von PQ vergebenen Schritte schon mal eigene Namen vergibt. Zudem lassen sich die einzelnen Schritte wohl auch noch Schachteln was den Text auch noch mal Verschlanken würde.
 
Etwas Code fehlt dann aber in deinem Vorschlag auch noch. Die Liste für C00 müsstest du noch Erstellen. Das ist in der PQ Variante mit drin.
 
Gruß Elex
Top
#17
Tja....,


Angehängte Dateien
.xlsb   __in der Beschränkung_snb.xlsb (Größe: 13,65 KB / Downloads: 3)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#18
Moin @snb
 
Wie der Code zu verwenden ist war mir klar.
Nur wie hast du die Liste für C00 erstellt (per Hand?). Im Original wird die Spalte sicher mehr Einträge haben, und wer hat schon Lust die ganze Spalte nach den Begriffen zu durchsuchen.
Ich weis dass auch das kein Problem ist in VBA, aber der Teil fehlt eben noch.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste