Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Position von Werten auf Arbeitsblatt ausgeben

Position von Werten auf Arbeitsblatt ausgeben
31.10.2019 13:24:34
Werten
Hallo,
ich bräuchte Hilfe bei folgendem Problem:
Ich möchte gerne für jeden Wert in Spalte A einer Tabelle (Tab_Keywords), dessen Spalten-Position auf einem anderen Arbeitsblatt ausgeben lassen.
Hintergrund:
Tab_Keywords[Keyword] enthält Wörter, die auf einer Webseite vorkommen sollen. Auf dem Tabellenblatt 'KW Struktur' lege ich nun fest auf welcher Unterseite und in welchem Absatz das Wort vorkommen soll (z.B. alle Wörter in 'KW Struktur'!A2:A300 sollen später auf Seite 1; alle Wörter in 'KW Struktur'!B2:B300 sollen später auf Seite 2...; zwischen den Wörtern aufeinanderfolgender Absätze ist immer eine Zeile frei gelassen, d.h. nach den Wörtern für Seite1 Absatz 1 ist eine Zeile frei und dann kommen alle Wörter für Seite 1 Absatz 2 usw.). Im Bereich 'KW Struktur'!A$1:CM$1 stehen jeweils die Namen der Seiten.
Die Struktur die auf Tabellenblatt 'KW Struktur' festlegt wird, möchte ich nun numerisch in der Tab_Keywords speichern. Ich brauche also ein Makro, das mir am besten durch Klicken eines Buttons 1) nacheinander die Wörter aus Tab_Keywords[Keyword] ausließt, nachschaut in welcher Spalte ein Wort in 'KW Struktur' vorkommt und mir dann die erste Zeile dieser Spalte (= der Seitenname) ausließt und in Tab_Keywords[Seite] schreibt. 2) nacheinander die Wörter aus Tab_Keywords[Keyword] ausließt, das Wort dann in 'KW Struktur' sucht und mir dann in Tab_Keywords[Block] ausließt, wieviele leere Zellen über dem Wort sind.
Ich kenne mich mit VBA leider überhaupt nicht aus. Wäre cool, wenn mir damit jemand helfen könnte :)
Beispiel-Datei habe ich hochgeladen: https://www.herber.de/bbs/user/132887.xlsx
Grüße, Jeanette

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
wieder ein PQ-Ansatz
31.10.2019 17:40:16
ChrisL
Hi Jeanette
Hier eine Lösung ohne VBA, dafür mit Power Query:
https://www.herber.de/bbs/user/132890.xlsx
Die Einarbeitung in das Thema müsstest du selber erledigen (z.B. Youtube gucken). Wenn dann noch Fragen vorhanden sind, kann ich gerne etwas auf den Lösungsweg eingehen.
Die Seite kann mit einem einzigen Schritt (entpivotieren) ermittelt werden. Für die Blocknummer muss man ein wenig tricksen (Index hinzufügen, filtern, nach oben ausfüllen).
cu
Chris
Aufzeichnungen u.a.:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Seite 1", type text}, {"Seite 2", type text}}),
#"Entpivotierte Spalten" = Table.UnpivotOtherColumns(#"Geänderter Typ", {}, "Attribut", "Wert"),
#"Umbenannte Spalten" = Table.RenameColumns(#"Entpivotierte Spalten",{{"Attribut", "Seite"}, {"Wert", "Schlüsselwort"}}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Umbenannte Spalten",{"Schlüsselwort", "Seite"}),
#"Zusammenführte Abfragen" = Table.NestedJoin(#"Neu angeordnete Spalten",{"Schlüsselwort"},#"AufbereitungSeite1+2",{"Seite"},"AufbereitungSeite1+2",JoinKind.LeftOuter),
#"Erweiterte AufbereitungSeite1+2" = Table.ExpandTableColumn(#"Zusammenführte Abfragen", "AufbereitungSeite1+2", {"Block"}, {"AufbereitungSeite1+2.Block"}),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Erweiterte AufbereitungSeite1+2",{{"AufbereitungSeite1+2.Block", "Block"}}),
#"Sortierte Zeilen" = Table.Sort(#"Umbenannte Spalten1",{{"Seite", Order.Ascending}, {"Schlüsselwort", Order.Ascending}})
in
#"Sortierte Zeilen"
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Seite 1", type text}, {"Seite 2", type text}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ",{"Seite 2"}),
#"Hinzugefügter Index" = Table.AddIndexColumn(#"Entfernte Spalten", "Index", 1, 1),
#"Zusammenführte Abfragen" = Table.NestedJoin(#"Hinzugefügter Index",{"Index"},HilfeSeite1,{"Index"},"Seite1b",JoinKind.LeftOuter),
#"Erweiterte Seite1b" = Table.ExpandTableColumn(#"Zusammenführte Abfragen", "Seite1b", {"Index.1"}, {"Seite1b.Index.1"}),
#"Sortierte Zeilen" = Table.Sort(#"Erweiterte Seite1b",{{"Index", Order.Ascending}}),
#"Nach oben gefüllt" = Table.FillUp(#"Sortierte Zeilen",{"Seite1b.Index.1"}),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Nach oben gefüllt",{"Index"}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Entfernte Spalten1",{{"Seite1b.Index.1", "Block"}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Umbenannte Spalten", each ([Seite 1] null)),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Gefilterte Zeilen",{{"Seite 1", "Seite"}}),
#"Angefügte Abfrage" = Table.Combine({#"Umbenannte Spalten1", AufbereitungSeite2})
in
#"Angefügte Abfrage"
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige