
Ich bin ein CPA mit viel Excel-Erfahrung, kann aber auf diese (eigene) Frage keine Antwort finden. Gibt es eine Möglichkeit, für das folgende Beispiel eine bedingte Formatierung anzuwenden:
BEISPIEL: Ich habe eine Formel mit der Bezeichnung =Summe(B4,C28,A32,B40)---> Gibt es eine Möglichkeit, eine bedingte Formatierungsregel auf die Zellen B4, C28, A32 und B40 anzuwenden, die die in der Formel verwendeten Zellen automatisch hervorhebt?
^ das würde bei einem Bankabgleich, den ich gerade durchführe, enorm helfen. Anstatt manuell hervorzuheben. Es gibt viele Zellen, bei denen ich das manuell machen müsste. Ich bin fest davon überzeugt, dass Abstimmungen so automatisiert wie möglich sein sollten (tatsächlich besteht der Großteil meiner Abstimmungen einfach aus einer Drag-and-Drop-Vorlage, die ich erstellt habe und die die meisten Abstimmungselemente automatisch aufzeigt).
HINWEIS: Derzeit verwende ich =isformula(xxxxx) für die Zellen, die ich manuell koppeln muss. Dann markiere ich sie, um sicherzustellen, dass alles erfasst wird/nichts übersehen wird.
Antwort1
Was Sie beschreiben, klingt nach einer Tabellenkalkulationsprüfung. Excel verfügt über einige integrierte Tools, die dabei helfen.
Mit „Präzedenzfälle verfolgen“ im Menüband „Formeln“ können Sie Linien zu Zellen zeichnen, von denen die aktuelle Zelle abhängt. Mit „Pfeile entfernen“ können Sie die Pfeile entfernen.
Oder Sie können die Formelansicht verwenden, indem Sie auf der Menüleiste „Formeln“ auf „Formeln anzeigen“ klicken (oder Strg+` verwenden – das ist das Backtick links neben der Zahl 1 auf einer US-Tastatur). Dadurch werden die Formeln in den Zellen anstelle der Ergebnisse angezeigt und jede Zelle, die in der Formel verwendet wird, wird hervorgehoben.
Bedingte Formatierung ist kein guter Ansatz, da Sie die bedingten Formate auf alle Zellen in der Tabelle anwenden müssten. Das würde die Arbeit ziemlich drastisch verlangsamen.
Antwort2
FORMULATEXT()
Ja, als Grundlage hierfür können Sie verwenden :
=IFERROR(FIND(SUBSTITUTE(CELL("ADDRESS",INDIRECT(ADDRESS(ROW(),COLUMN()))),"$",""),FORMULATEXT($C$1)),0)<>0
Das Obige setzt voraus, dass Sie die Zelle kennen, in der sich die von Ihnen untersuchte Formel befindet. Es wird $C$1 verwendet, aber Sie können es natürlich in jede beliebige Zelle ändern.
Sie können die Regel für bedingte Formatierung ("CF") für jede einzelne Zelle erstellenABER tun Sie es IN dieser Zelle: während diese Zelle ausgewählt ist, kopieren Sie dann die Zelle und fügen Sie die Formate in jede andere Zelle ein, die Sie in die CF aufnehmen möchten.
Ich stelle mir vor, dass Sie die Zelle mit der SUM()
Formel haben und die Zellen, auf die sie verweist, direkt ausfüllen. Wenn Sie irgendwo eine Liste eingeben, können Sie beim Erstellen Ihrer CF-Formel direkt darauf verweisen.
Die Formel ADDRESS()
erstellt einen Textzellverweis für die ausgewählte Zelle und damit für alle Zellen, über die der CF letztendlich gelegt wird. Dann wird daraus INDIRECT()
ein „echter“ Zellverweis. Schließlich werden SUBSTITUTE()
die $ entfernt (Sie erhalten „A1“ und nicht $A$1).
Dies wird zum Material, nach dem FIND()
in der Funktion gesucht wird, SUM()
zu der Sie Zellen hinzufügen. FORMULATEXT()
wird verwendet, um den Text dieser Formel abzurufen, und da „SUM(“ und „)“ nicht Teil einer akzeptablen Zellreferenz sind, muss nichts damit unternommen werden, und es FIND()
wird einfach in den zwischen den Klammern referenzierten Zellen gesucht. IFERROR
prüft, ob es fehlgeschlagen ist, und gibt in diesem Fall 0 als Ergebnis aus, da FIND()
kein 0-Ergebnis erzeugt werden kann. Das bedeutet, dass Sie aus diesem Schritt entweder eine positive Ganzzahl oder 0 erhalten.
Zuletzt prüft CF, ob der Wert 0 ist, und wenn er NICHT 0 ist, hebt es die Zelle nach Wunsch hervor.
Dies ist Teil einer umfassenderen Funktion, die anscheinend niemand erkundet. Ich kann benannte Bereiche erstellen, an die ich anhängen ()
und in die Klammern alles eingeben kann, was ich möchte, genau wie Argumente in einer „echten“ Funktion. Ein paar unterstützende benannte Bereiche geben mir dann einen benannten Bereich, der wie eine in Excel programmierte Funktion aussieht und sich verhält, wie SUM()
ist, mit beliebigen Argumenten, die ich wähle. Zu den Favoriten hier für Kollegen gehört ourLOOKUP()
(Firmenname, nicht „unser“), das INDEX/MATCH-Argumente nimmt und sie in eine Funktion einfügt, die wie aufgebaut ist VLOOKUP()
.
Also im Wesentlichen UDFs, ohne viel über VBA zu wissen oder auf Stellen zu stoßen, wo VBA nicht verwendet werden darf.
Das ist beim ersten Mal ziemlich mies und heikel, aber nett.
Aber das Obige wird Ihre Hervorhebung behandeln, wenn Sie das ()
in Ihrem ausfüllen SUM()
, wie ich vermute. Erweitert die Antwort nicht auf die Bearbeitung Ihrer größeren Aufgabe, sondern nur die Hervorhebung, nach der Sie fragen.