Excel: Verwenden von Text aus einer Zelle als Name eines Arbeitsblatts in einer Gleichung mit bedingter Formatierung

Excel: Verwenden von Text aus einer Zelle als Name eines Arbeitsblatts in einer Gleichung mit bedingter Formatierung

Der Titel bringt eigentlich genau zum Ausdruck, was ich versuche, aber er ist etwas verworren und geheimnisvoll, deshalb erkläre ich es anhand eines Anwendungsfalls:

Wenn ich eine Excel-Arbeitsmappe mit zwei Blättern (Blatt A und Blatt B) habe, die sehr nahe beieinander liegen, und ich möchte, dass die Unterschiede optisch hervorgehoben werden, könnte eine typische Vorgehensweise etwa so aussehen:

  • Markieren Sie in Blatt A alle Zellen
  • Bedingte Formatierung eingeben, Neue Regel, Formel verwenden
  • Geben Sie in das Formelfeld Folgendes ein:

    =a1<>TabelleB!a1

  • wenden Sie die gewünschte Formatierung an und klicken Sie auf „OK“.

Im Grunde wird dabei jede Zelle von Blatt A mit ihrem Gegenstück in Blatt B verglichen und die Formatierung angewendet, wenn sie unterschiedlich sind. Wenn die Blattnamen komplex sind (insbesondere wenn sie Leerzeichen enthalten und daher Anführungszeichen benötigen), ist es hilfreich, während der Formeleingabe auf den Registerkartennamen zu klicken.

Aber nehmen wir nun an, dassin einer Zelle von SheetA,Ich habe einen Textausdruck eingegeben, der den Namen von SheetB enthält, und möchte in der obigen Formel zur bedingten Formatierung auf diese Zelle verweisen.

(Warum? Ich habe möglicherweise 100 Tabellen und möchte 1 mit 2, dann 1 mit 3 und dann 1 mit 55 vergleichen, indem ich den Text in der Zelle ändere, anstatt jedes Mal die bedingte Formatierung manuell zu ändern.)

Wie kann ich das machen?

Mir ist bewusst, dass die Funktion INDIREKT zum Umwandeln von Text in Blattnamen verwendet wird, und ich habe mehrere Variationen zu diesem Thema ausprobiert, bei denen ich die Funktion INDIREKT als Teil der Formel zur bedingten Formatierung verwendet habe, aber nichts scheint wirklich zu funktionieren.

Antwort1

Verwenden Sie eine Formel zur bedingten Formatierung wie diese:

= A1 <> INDIRECT(ADDRESS(ROW(A1), COLUMN(A1),,, aSheet), TRUE)

Ersetzen Sie es aSheetdurch einen Verweis auf die Zelle, in der Sie den Namen des zu vergleichenden Blattes gespeichert haben.

DerADDRESS()Die Funktion stellt einen Zellverweis als Textzeichenfolge zusammen und ermittelt mithilfe der Funktionen ROW()und COLUMN()die Zeile und Spalte der auszuwertenden Zelle.

Sie könnten die Funktion überspringen ADDRESS()und den Zellbezug einfach im Format R1C1 mithilfe der Zeichenfolgenverkettung erstellen, aber die obige Formel ist wahrscheinlich einfacher zu lesen und zu verstehen. Das Äquivalent wäre:

= A1 <> INDIRECT(aSheet & "!R" & ROW(A1) & "C" & COLUMN(A1), FALSE)

verwandte Informationen