Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PowerQuery Tabelle - Zeile markieren

PowerQuery Tabelle - Zeile markieren
31.01.2023 08:04:03
LeRayZ
Moin,
ich lasse mir durch Power Query durch zwei Abfragen in eine neue Tabelle anfügen (im folgenden Zusammenfassung genannt)
Ist es möglich in der Power Query Zusammenfassung eine Zeile zu markieren, die sich am Inhalt verankert und nicht an die Zeilennummer?
Bsp: Wir befinden uns in der Power Query Zusammenfassung
Zeile 7 beinhaltet in der Abfrage Text 1
Zeile 8 beinhaltet in der Abfrage Text 3 - Diese Zeile habe ich gelb markiert (es macht keinen Unterschied ob ich die ganze Zeile (klick auf die Zeilennummer 8) oder nur die Zeile in der Tabelle (klick auf den Rand der Tabelle bis der Pfeil erscheint) markiere)
Zeile 9 beinhaltet in der Abfrage Text 4
Als Bild:
Userbild
Jetzt füge ich in einer der Ursprungstabellen den Text 2 ein und aktualisiere die Zusammenfassung
Jetzt ist zwar immer noch Zeile 8 gelb markiert, jedoch befindet sich hier Text 2 (nach A-Z sortiert) und nicht die ursprünglich markiere Zeile mit dem Text 3.
Als Bild:
Userbild
Also nochmal die Frage:
Ist es möglich in der Power Query Zusammenfassung eine Zeile zu markieren, die sich auf den Inhalt verankert und nicht an die Zeilennummer?
LG
LeRayZ
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Es nennt sich bedingte Formatierung owT
31.01.2023 08:09:28
Yal
AW: Es nennt sich bedingte Formatierung owT
31.01.2023 08:13:26
LeRayZ
Wie genau soll ich eine Zeile mit der bedingten Formatierung owT markieren?
RE: Es nennt sich bedingte Formatierung owT
31.01.2023 08:14:24
LeRayZ
Wie genau soll ich eine Zeile mit der bedingten Formatierung owT markieren?
Anzeige
AW: RE: Es nennt sich bedingte Formatierung owT
31.01.2023 08:21:10
Yal
Hallo,
sorry, wenn ich dich durcheinander gebracht habe. "owT" bedeutet "ohne weitere Text". d.h. die ganze Antwort steht im Überschrift.
Die Markierung erfolgt mit einem bedingte Formatierung. Als Regel für den ganzen Bereich, wenn $A1=... Dann... ($A1 bzw. die erste Zelle der Zielbereich).
VG
Yal
Anzeige
AW: RE: Es nennt sich bedingte Formatierung owT
31.01.2023 08:25:14
LeRayZ
Achso einfach bedingte Formatierung basierend auf dem Text meinst du...
Okay, das ist ziemlich umständlich, gibt es keine andere Möglichkeit oder
Kann man hierfür ein Button erstellen, dass dann eine bedingte Formatierung basierend auf der ausgewählten Zelle erstellt?
Und dann auch einen Button der die bedingte FOrmatierung basierend auf der ausgewählten Zelle löscht?
Anzeige
Klar, kann man
31.01.2023 08:47:29
Yal
Starte den Makrorekorder, mache die Einstellung per Hand, stop den MR und passt den Code an.
VG
Yal
AW: Klar, kann man
31.01.2023 08:56:41
LeRayZ
Wie kann ich denn Anpassen, dass er nicht den Text A als Bedingung nimmt sondern das kopierte?
Sub ZelleMarkieren()
    Selection.Copy
    Application.CutCopyMode = False
    Selection.FormatConditions.Add Type:=xlTextString, String:= _
        "TEXT A", _
        TextOperator:=xlContains
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

Anzeige
AW: Klar, kann man
31.01.2023 09:03:16
LeRayZ
Okay ich konnte das mit ChatGPT anpassen haha
Leider bekomme ich nicht hin, dass das Makro immer für die ganze Spalte die "suche" aktiviert (habe beim Aufnehmen einfach bis Zeile 1000 eingestellt), kannst du mir da helfen?
Userbild
Der neue Code:
Sub ZelleMarkieren()
Dim selectedCell As String
selectedCell = Selection.Value
Selection.Copy
Application.CutCopyMode = False
Selection.FormatConditions.Add Type:=xlTextString, String:= _
    selectedCell, _
    TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 65535
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub

Anzeige
AW: erschließt sich mir nicht ...
31.01.2023 09:12:55
neopa
Hallo,
... was ist an einer bedingte Formatierung mit der einfachen Formel: ...=[Vergleichsdatenwert] dem Geltungsbereich zuzuordnen umständlich? Und eine solche kann auch einfach aktiviert/deaktiviert (aber nicht gelöscht) werden, durch einen "Wert" einer anderen Zelle, der z.B. mittels Dropdownzelle gesetzt oder auch durch einen Button erzeugt wird.
Gruß Werner
.. , - ...
Anzeige
AW: erschließt sich mir nicht ...
31.01.2023 09:16:17
LeRayZ
Sry Werner aber ich verstehe absolut nicht was du meinst
AW: hmm ...
31.01.2023 09:23:21
neopa
Hallo LeRayZ,
... aber zumindest wie man einen bedingte Formatierung anwendet ist Dir klar? Wenn doch nicht dann sieh mal hier: https://www.online-excel.de/excel/singsel.php?f=74
Und wenn Du z.B. in H1 eine Dropdownzelle hast mit der einzigen Auswahlmöglichkeit "an" dann kannst Du die bedingte Formatierungsformel wie folgt definieren:
=([Startzelladresse des Geltungsbereiches der bed. Formatierung]=[Dein Vergleichswert])*($H$1="an")
Verständlicher?
Gruß Werner
.. , - ...
Anzeige
AW: hmm ...
31.01.2023 09:33:26
LeRayZ
Die bedingte Formatierung kenne ich, aber ich verstehe immer noch nicht dein vorgehen
AW: dann ...
31.01.2023 09:47:37
neopa
Hallo LeRayZ,
... weiß ich momentan auf die Schnelle nicht, wie ich es Dir ohne Datei besser erklären könnte.
Gruß Werner
.. , - ...
also bei aller Bescheidenheit...
31.01.2023 10:51:21
Yal
...man kann mit VBA noch nicht soweit sein, aber es ist kein Schicksal sondern ein temporäre Zustand, den es gilt schnellstens zu verbessern.
VBA-Code kann man lesen. Am besten auf Deutsch und laut (Ja, man muss sich selbst dabei hören!) So kommt man am schnellsten in den einfachsten Code rein.
zum Beispiel:
Selection.Copy
Application.CutCopyMode = False
Auf Deutsch: wir kopieren die selektierte Zelle(n) und wir schalten den Copy-Modus aus. Klingt das was? Wo ist der "wir fügen das kopierten an Stelle xy."
Das einzigste, was Du nicht direkt wissen kannst: das Ergebnis der PowerQuery-Abfrage ist eine intelligente Tabelle. Diese hat einen Name. In VBA kann diese so erreichen:
Sub ZelleMarkieren()
Dim LO As ListObject
Dim Z As Range
Const cAbfrageName = "TabelleXY" 'anpassen
    Set LO = Range(cAbfrageName).Parent.ListObjects(cAbfrageName)
    Set Z = Intersect(Selection.EntireRow, LO).Range(1)
    If Not Z Is Nothing Then
        With LO.DataBodyRange.FormatConditions.Add(Type:=xlExpression, Formula1:="=(" & Z.Address(True, False) & "=""" & Selection.Value & """)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 65535
                .TintAndShade = 0
            End With
            .StopIfTrue = False
        End With
    End If
End Sub
ungetestet, da keine Datei zu testen.
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Power Query: Zeile basierend auf Inhalt markieren


Schritt-für-Schritt-Anleitung

Um in Power Query eine Zeile basierend auf ihrem Inhalt zu markieren, kannst du die bedingte Formatierung in Excel nutzen. Hier sind die Schritte:

  1. Bereich auswählen: Markiere den Bereich in deiner Power Query Zusammenfassung, den du formatieren möchtest.
  2. Bedingte Formatierung öffnen: Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Formel verwenden: Wähle „Formel zur Bestimmung der zu formatierenden Zellen verwenden“.
  4. Formel eingeben: Gib eine Formel ein, die sich auf die Zellen im Bereich bezieht, z. B.:
    =$A1="TEXT 3"

    Diese Formel sorgt dafür, dass die Zeile mit „TEXT 3“ markiert wird.

  5. Format festlegen: Klicke auf „Formatieren“ und wähle die gewünschten Formatierungsoptionen (z. B. gelbe Hintergrundfarbe).
  6. Regel anwenden: Klicke auf „OK“, um die Regel anzuwenden.

Diese Methode funktioniert für die gesamte Zeile, unabhängig von der Zeilennummer.


Häufige Fehler und Lösungen

Problem 1: Die bedingte Formatierung wird nicht angewendet.
Lösung: Stelle sicher, dass die Formel richtig ist und der Bezug auf die erste Zelle des Bereichs korrekt ist.

Problem 2: Nach Aktualisierung der Tabelle bleibt die falsche Zeile markiert.
Lösung: Überprüfe, ob die bedingte Formatierung korrekt auf den Inhalt reagiert. Die Formel sollte auf die Werte in der entsprechenden Spalte verweisen.


Alternative Methoden

Falls die bedingte Formatierung nicht deinen Anforderungen entspricht, kannst du auch VBA verwenden:

Sub ZelleMarkieren()
    Dim LO As ListObject
    Dim Z As Range
    Const cAbfrageName = "TabelleXY" ' Tabelle anpassen
    Set LO = Range(cAbfrageName).Parent.ListObjects(cAbfrageName)
    Set Z = Intersect(Selection.EntireRow, LO).Range(1)

    If Not Z Is Nothing Then
        With LO.DataBodyRange.FormatConditions.Add(Type:=xlExpression, Formula1:="=(" & Z.Address(True, False) & "=""" & Selection.Value & """)")
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = 65535
                .TintAndShade = 0
            End With
            .StopIfTrue = False
        End With
    End If
End Sub

Dieser Code funktioniert für intelligente Tabellen und markiert die Zeile basierend auf dem Inhalt der ausgewählten Zelle.


Praktische Beispiele

  1. Markiere jede zweite Zeile: Wenn du jede zweite Zeile farbig formatieren möchtest, kannst du eine Formel wie diese verwenden:

    =REST(ZEILE();2)=0

    Diese Formel färbt jede zweite Zeile.

  2. Farbige Zellen summieren: Um die Summe der farbigen Zellen zu berechnen, nutze eine benutzerdefinierte Funktion in VBA, um die Zellen mit einer bestimmten Hintergrundfarbe zu summieren.


Tipps für Profis

  • Nutze Power BI für eine erweiterte bedingte Formatierung, insbesondere wenn du mit großen Datenmengen arbeitest.
  • Experimentiere mit Power Query-Variablen, um dynamische Bedingungen zu erstellen.
  • Vertraue auf VBA, wenn du komplexere Anforderungen hast, wie das Ermitteln der letzten Zeile in einer intelligenten Tabelle.

FAQ: Häufige Fragen

1. Wie kann ich die bedingte Formatierung für mehrere Bedingungen anwenden?
Du kannst mehrere Regeln in der bedingten Formatierung definieren und die Priorität der Regeln festlegen.

2. Gibt es eine Möglichkeit, die bedingte Formatierung über VBA zu steuern?
Ja, du kannst VBA verwenden, um bedingte Formatierungen dynamisch zu erstellen und zu ändern, indem du die entsprechenden Eigenschaften der FormatConditions-Objekte anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige