Anzeige
Archiv - Navigation
1648to1652
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

Auswahlmöglichkeiten bei WAHL

Auswahlmöglichkeiten bei WAHL
29.09.2018 12:57:38
Rudolf
Hallo,
ich habe z.B. das Tabellenblatt "Basis" und viele weitere Tabellenblätter (z.B. 2017, 2016, 2015, 2014 usw.).
In einer Zelle von Basis möchte ich z.B. per SVERWEIS (… könnte auch eine Index-Formel sein) einen Wert herausholen, der sich auf allen weiteren Tabellenblättern an gleicher Stelle befindet. Um welches Tabellenblatt es sich handelt, bestimmt ein Wert in einer anderen Zelle von Basis, in A1 wird aufgrund einer anderen Formel z.B. die Zahl 2 ermittelt.
Die Formel könnte also aussehen:
=sverweis(e1;wahl(a1;2017!c1:f20;2016!c1:f20;2015!c1:f20:2014!c1:c20);2;falsch).
In diesem Beispiel würde ich also den gewünschten Wert aus dem Tabellenblatt 2016! erhalten. Wie kann ich die Auswahlmöglichkeiten bei WAHL besser beschreiben? Hier sind es im Beispiel nur vier Möglichkeiten, doch bei vielen weiteren Tabellen wird die Formel arg lang, zumal es im Laufe der Zeit zu weiteren Tabellenblättern kommt.
Ich möchte nicht mit volatilen Funktion INDIREKT arbeiten, weil ich letztlich viele Sverweis bzw. indexformeln im Tabellenblatt Basis verwende und die vielen indirekt-Formeln ständig zu elenden zeitraubenden Neuberechnungen führen.
Gruß Rudolf

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswahlmöglichkeiten bei WAHL
29.09.2018 14:40:17
Daniel
Hi
wenn in einem Variablen Zellbezug der Tabellenblattname die Variable sein soll, dann gehts nicht ohne Indirekt, bzw deinen aufwendigen Workaround mit WAHL.
die andere Alternaitve wäre, dass du die ganzen Tabellen nicht in einzelne Tabellenblätter schreibst, sondern auf einem Tabellenblatt anordnest, mit der jeweiligen Jahreszahl als Kennung in einer Zeile oder Spalte, je nachdem ob du neben- oder untereinander anordnen willst.
dann könnte man den Zellbezug mit INDEX angeben und berechnen und so die Volatilität vermeiden.
die Excelblätter sind mittlerweise groß genug um sowas problemlos zu realisieren.
Gruß Daniel
Anzeige
Evaluate, Volatilität und INDIREKT
30.09.2018 02:24:04
Luc:-?
Hallo, Rudolf & Interessenten;
es dürfte kaum bekannt sein, dass man die Volatilität einer Xl-Fkt auch aushebeln kann, oft für die Dauer der Öffnung der die Fkt enthaltenden Datei (beim Öffnen u/o Schließen wird idR eine völlige Neuberechnung veranlasst). Dann reagiert die Fkt auch nicht auf die 2…3 Neu­berech­nungs­mög­lich­keiten per Mausklick bzw Taste [F9]. Dazu muss man die Xl-Fkt nur aus einer nicht-volatilen UDF (in einer ZellFml) heraus aufrufen. Das würde logisch erscheinen, wenn die Fkt INDIREKT hier nicht ggüber anderen volatilen Xl-Fktt wie bspw JETZT auch dabei aus dem Rahmen fallen und sich als besonders volatil erweisen würde, was ggf dem Umstand geschuldet ist, dass ihr übli­cher­weise Argu­mente mit­gegeben wdn.
Trotzdem ist es möglich, mit einem Trick eine zeitweilige Nicht-Volatilität dieser Fkt zu erreichen, der aber spä­tes­tens mit erneutem Öffnen der Datei in seiner Wirkung auf­geho­ben wird (bei argu­ment­losen vola­tilen Xl-Fktt bleibt die Nicht-Volatilität natür­lich erhal­ten!). Dazu müsste die im INDIREKT-Argument genannte Quelle einen ebenfalls mit einer solchen UDF erzeugten Ergebnis­Wert ent­halten. Diese UDF wird vor­über­gehend (per Argu­ment) auf nicht-vola­til gestellt. Die darauf verweisende UDF mit internem INDIREKT wird dann natürlich keine Ergebnis­Änderung mehr zeigen. Wird die Quell-UDF dann wieder auf volatil gestellt, bleibt dieser Effekt bei der 2.UDF erhalten → sie reagiert nicht mehr auf Änderungen des Ergebnisses der 1., wird also nicht erneut berechnet.
Das habe ich unter Xl14/2010 bemerkt und es muss nicht unbedingt auch für andere, vor allem neuere Xl-Versionen gelten. Dazu habe ich folgende ZellFmln benutzt:
Quelle - O22: =FxGuide(8;"RandBetween";1;1;100) [Effekt tritt mit Arg=1|2 kaum mal auf.]
Ziel1: =FxGuide(8;"indirect";;"""O22""")
Ziel2: =FxGuide(9;"indirect";;"""R22C15""";0) [Relative R1C1-AdressAngaben wdn anscheinend nicht unterstützt!]
Hierbei wird mit dem 3.Argument der UDF FxGuide die Volatilität der UDF festgelegt. Ihr 1.Argument legt die Aus­füh­rungs­methode der Fkt, deren Name als 2.Argu­ment notiert wurde, fest. Da INDIREKT nicht im WorksheetFunction-„Container“ (Arg1=2) enthalten und somit auch nicht nur per Application (Arg1=1) aus­führ­bar ist, ist nur Evaluierung möglich (Arg1=8|9).*
Es sieht auch ganz so aus, als ob dieser Effekt hptsächlich der FmlText-Evaluierung geschuldet ist (wie auch manch anderer irre­gu­lärer Effekt). Als Worksheet­Function lässt sich die Vola­tilität argument­behafteter Xl-Fktt anschei­nend nur aus­nahms­weise und sehr spora­disch unter­drücken, was auf Pgm-Schwä­chen des FmlText-Interpreters hin­deuten könnte.
* Da die UDF (und damit dieser Gedankengang) noch sehr neu ist, konnte ich noch nicht ausreichend testen. Demnächst ist aber eine Publikation der UDF nebst aus­führ­li­cherer Beschrei­bung und ggf weiterer Erkennt­nisse geplant.
Zu deinem eigentlichen Problem, Rudolf;
falls du Daniels Vorschlag nicht folgen kannst oder willst (ein Blatt pro Jahr kann durchaus übersichtlicher sein als alles auf nur einem Blatt zu halten), gäbe es noch die Möglichkeit, deine gezeigte Fml dadurch zu ver­kürzen, dass du die WAHL-Möglich­keiten in benannte Bezüge aus­lagerst. Wählst du deren Namen recht kurz, bleibt die Fml über­schau­bar, zB:
=SVERWEIS(E1;WAHL(A1;anno7;anno6;anno5;anno4;anno3;anno2;anno1;anno0);2;0)
für anno7: =2017!C1:F20, anno6: =2016!C1:F20 usw.
Da der DatenAbruf aber offensichtlich in Relation zu A1ff steht, könntest du auch (zusätzlich bzw alternativ) so etwas wie ein INDIREKT für die ganze Fml verwenden. Das wäre in einer benannten Fml mit der alten XLM-Fkt AUSWERTEN möglich (abgesehen mal von UDF-Lösungen wie TxEval mit engl FmlText in einer ZellFml), was aber (ebenso wie bei UDF-Verwendung, außer Letztere steht in einem AddIn allgemein zV) die Speicherung der Datei als .xlsm/b erforderte:
Zusätzlich → JDatenVweis: =AUSWERTEN("sverweis("&E1&";anno"&A1&";2;falsch)")
Alternativ → JDatenVweis: =AUSWERTEN("sverweis("&E1&";"&A1&"!c"&ZEILE($A1)&":f"&ZEILE($A20)&"2;falsch)")
In den beiden 1.Fällen enthalten A1ff fort- bzw rücklfd Nrn (man könnte hier aber statt A1 im Original auch ZEILE($A1) bzw beim Zusatz 8-ZEILE($A1) verwenden!), im 2. die 4stelligen Jahreszahlen.
AUSWERTEN ist wahrscheinlich (und TxEval ganz bestimmt) nicht volatil.
Feedback nicht unerwünscht! Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige