Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Wert in Exceltabellen suchen und Fundstelle ausgeben

Forumthread: Wert in Exceltabellen suchen und Fundstelle ausgeben

Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 11:40:32
Josef
Ich habe eine Arbeitsmappe mit Stundennachweistabellen für die Monate 1 bis 12.
Ich würde gerne über alle Tabellen in Spalte B den Wert "Samstag" und in Spalte G den Wert "frei" finden (also wann der AN an einem Samstag frei hatte)
und dann die Fundstelle in Zeile 44 ausgeben. Wäre für jede Lösung entweder mit Formel oder mit Makro dankbar.
mfg
Josef
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 11:58:53
RPP63
Moin!
Ich werde niemals verstehen, warum man Excel für Monatsblätter missbraucht!
Alle Tage gehören untereinander in eine Tabelle!
(gibt mal in eine freie Zelle =HEUTE()+2^20 ein und formatiere sie als Datum)
Die vorhandenen 1.048.576 Zeilen reichen ab heute bis ins Jahr 4896 …
Da dürftest Du eventuell bereits Rente beziehen. ;-)
Dann filterst Du Spalte B nach Samstag und Spalte G nach frei.

Wenn Du Monatsergebnisse willst, dann verwendest Du TEILERGEBNIS()

Gruß Ralf
Anzeige
AW: Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 12:08:14
Josef
Hallo Ralf, vielen dank, für den Hinweis, werde ich mir für nächstes Jahr auf alle Fälle vormerken. Aber für diese Jahr möchte ich jetzt nicht mehr alles in eine
Jahrestabelle übertragen.
Gruß Josef
AW: Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 12:00:04
BoskoBiati
Hallo,

ohne die Datei zu kennen ist das etwas schwierig. Zudem ist es sehr ungünstig, wenn in einer Zeiterfassung "Samstag" steht, das löst man eigentlich anders.

=Aggregat(15;6;Zeile($A$1:$A$43)/($B$1:$B$43="Samstag")/($G$1:$G$43="frei");Spalte(a1))


nach rechts ziehen soweit erforderlich.

Gruß

Edgar

Anzeige
AW: Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 12:11:43
Marc
Was passiert wenn
das Ergebnis Samstag und frei, mehr als einmal auftaucht ?
Aber ansonsten, warum nicht alle Tage in ein Arbeitsblatt dann die erste Zeile einen Filter erstellen,

der in Spalte A Samstage zunächst filtert und dann in der anderen Spalte ob da "frei" ist
Damit hättest du auch die Möglichkeit zu sehen, wenn es mehr als einen Samstag frei gibt...

mit

=TEXT(A2;"[$-407]TTTT")

gibst du den Tag des Datums in Spalte a aus (das [$-407] macht die Ausgabe auf deutsch (407 steht für die deutsche Sprache) unabhängig, welche Sprachversion dein Excel hat.

https://www.herber.de/bbs/user/179143.xlsx

als ganz einfache Beispieldatei
Anzeige
AW: Wert in Exceltabellen suchen und Fundstelle ausgeben
12.10.2025 15:45:09
Daniel
Hi
die Beschreibung ist jetzt etwas knapp, vor allem dabei , was genau du dir als Ergebnis wünschst.
das müsste man aber konkret wissen, um eine Lösung zu erstellen.

Für deine Excelversion würde sich tatsächlich ein Makro oder eine selbstgeschriebene Funktion anbieten.

hier mal ein Ansatz:
folgender Code muss ins Modul1:

Function xxx(Tag As String, Inhalt As String, ParamArray Zellbereiche() As Variant) As String


Dim wb As Workbook
Dim i As Long
Dim Zelle As Range
Dim Erg As String

For i = LBound(Zellbereiche) To UBound(Zellbereiche) Step 2
For Each Zelle In Intersect(Zellbereiche(i), Zellbereiche(i).Worksheet.UsedRange).Cells
If Zelle.Text = Tag Then _
If Intersect(Zelle.EntireRow, Zellbereiche(i + 1).EntireColumn).Text = Inhalt _
Then Erg = Erg & "; " & Zellbereiche(i).Worksheet.Name & " in Zeile: " & Zelle.Row
Next
Next
xxx = Mid(Erg, 3)
End Function


in die Zeile 44 muss dann folgende Formel:
=xxx("Samstag";"frei";Januar!B:B;Januar!G:G;Februar!B:B;Februar!G:G;...;Dezember!B:B;Dezember!G:G)


du gibst als Parameter zuerst den Wochentag, den du auswerten willst an und dann den Text, nach dem du suchst.
danach folgen dann immer Spaltenweise die Spalten, die du auswerten möchtest, hierbei musst du dann jedes Tabellenblatt angeben.

also Ausgabe bekommst du Tabellenblattname und Zeilennummer jeder Fundstelle.

Falls du da was anderes haben willst, müsste man den Code entsprechend anpassen.

Gruß Daniel
Anzeige
Das ist einer der...
12.10.2025 20:50:34
Case
Moin Josef, :-)

... Klassiker in Power Query: ;-)
https://www.herber.de/bbs/user/179146.xlsx

Das ist jetzt nur ein Ansatz. In der Ausgabe können die Tabellenblätter auch mit den Nummern (oder den Monatsnamen) benannt werden. Auch deine AN als zusätzliche Spalte sind kein Problem. Auch danach könntest du filtern. Und..., und..., und... ;-)
Eventuell hab ich deine Beispieldatei übersehen. ;-)

Du kannst auch nur eine Zeile ausgeben - Wochentag, Dienst und Anzahl. ;-)

Informationen zu Power Query: ;-)
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/

Servus
Case
Anzeige
AW: Das ist einer der...
15.10.2025 13:21:53
Josef
Hallo Case, leider habe ich mich noch nie mit Powerquery beschäftigt. Aber sieht sehr interessant aus.
Kannst du mir das bitte etwas genauer erklären?
Danke
Ok - ich versuche mal...
15.10.2025 14:52:15
Case
Moin Josef, :-)

… etwas Licht ins Dunkel zu bringen. ;-)

Du hast 12 Tabellenblätter (wenn noch andere vorhanden sind, spielt das keine Rolle). ;-)
Ob die nun 1 - 12 oder Januar - Dezember heißen ist egal. ;-)
Die Daten dort wandelst du in sogenannte "intelligente Tabellen" um. ;-)
Also für jedes Tabellenblatt - Cursor in eine Zelle der Daten und STRG+T. ;-)
In der Regel erkennt er den richtigen Bereich und auch ob es Überschriften gibt. ;-)
Gibt es noch keine "Tabellen" benennt er sie Tabelle1, Tabelle2... Tabelle12. ;-)
Danach kannst du später gut filtern. ;-)

Wenn du immer nach Samstag und frei filtern willst, dann brauchst du das mit den Namen in B1 und C1 natürlich nicht. Das ist nur, wenn du eine Auswahl möchtest. ;-)
Sonst würde der M-Code - bezogen auf meine Beispieldatei - so aussehen: ;-)

let

AlleTabellen = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name],"Tabelle")),
Zusammen = Table.Combine(List.Transform(Table.ToRecords(AlleTabellen), each Table.AddColumn(_[Content], "Quellen", (x)=> _[Name]))),
Filter = Table.SelectRows(Zusammen, each ([WochenTag] = "Samstag") and [Dienst] = "frei")
in
Filter


Also einfach fest verdrahtet im M-Code. ;-)

Im Power Query Editor (z. B. erreichbar über Daten - Abfragen und Verbindungen und dann eine Doppelklick auf die Abfrage im rechten Fenster) siehst du rechts die einzelnen Schritte. ;-)

Zuerst lade ich die Daten der beiden Namen - also Tag und Zustand. Die habe ich vorher für die Zellen B1 und C1 im Namens-Manager angelegt. ;-)
Dann filtere ich die Tabellen "Tabelle1 bis Tabelle12" raus (im Schritt AlleTabellen). ;-)
Im Anschluss werden alle Tabellen zu einer Tabelle zusammengefügt. ;-)
Schlussendlich wird das, was aus den Namen geladen wurde gefiltert. Das bleibt übrig und du kannst es über "Schließen & laden" in einer Tabelle ausgeben. ;-)

Das wäre der M-Code, wenn du nur eine Zeile ausgeben möchtest - auch bezogen auf meine Beispieldatei: ;-)

let

QuelleT = Excel.CurrentWorkbook(){[Name="Tag"]}[Content][Column1]{0},
QuelleZ = Excel.CurrentWorkbook(){[Name="Zustand"]}[Content][Column1]{0} & "",
AlleTabellen = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name],"Tabelle")),
Zusammen = Table.Combine(List.Transform(Table.ToRecords(AlleTabellen), each Table.AddColumn(_[Content], "Quellen", (x)=> _[Name]))),
Filter = Table.SelectRows(Zusammen, each ([WochenTag] = QuelleT) and [Dienst] = QuelleZ),
Ergebnis = #table({"WochenTag", "Dienst", "Anzahl"}, {{QuelleT, QuelleZ, Table.RowCount(Filter)}})
in
Ergebnis


Servus
Case
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige