Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

Super-INDEX und Minder-WAHL? Ein Plädoyer

Super-INDEX und Minder-WAHL? Ein Plädoyer
23.06.2016 04:07:47
Luc:-?
Morrn, Leute;
zum Wochenende mal etwas vorfristig ein Vergleich der Xl-Fktt INDEX und WAHL. Dabei geht's mir darum, zu zeigen, dass beide Fktt einerseits mehr können als gemeinhin angenommen und beschrieben wird und andererseits WAHL arg unterschätzt wird. Während INDEX nicht zu Unrecht mitunter als SuperFkt charakterisiert wird, muss WAHL sich oft mit einem „Mauer­blümchen“-Da­sein bescheiden, was man auch in PHs oft verlinktem Online-Excel-Tutorial nicht anders lesen kann. Während dort in Bezug auf INDEX nur etwas fehlt, ist die Darstellung von WAHL leider zT falsch und zeigt keinesfalls seine Potenzen. Wer das nicht glauben mag, möge doch einfach mal die dortigen Beschreibungen mit dem Folgenden vergleichen!
Zuerst etwas zum Ansehen:
 OPQRSTUVW
1Vergleich WAHL und INDEX164← Kontroll-SUMME +AggregateXk+AggregateXk+
2WAHLINDEX sing.INDEX dualWAHL °INDEX °summe ↓WAHLWAHLINDEX dual
316466164(° Hier wird Zellbezug benötigt!)265265265162
46666 #WERT!Rot63663363
56060 #WERT!Gelb 605164
63838 #WERT!Blau 38 38
7O3: {=SUMME(WAHL(ZEILE(A1:A3);B6;B14;B20))}R4:R6: {=T(JETZT())&CellContIn(WAHL(ZEILE(A1:A3);Q4;Q5;Q6);;;"icn")}265
8P3: {=SUMME(INDEX((B6;B14;B20);;;ZEILE(A1:A3)))}S4:S6: {=T(JETZT())&CellContIn(INDEX((Q4;Q5;Q6);;;ZEILE(A1:A3));;;"icn")}AGGREGAT °+ INDEX
9Q2:Q3: {=WENN(ZEILE(A1:A2)=2;SUMME(INDEX((B6;B14;B20);;;ZEILE(A1:A3))*1^ZEILE(A1:A3));"INDEX dual")}W7:=SUMME(W4:W6)
10O4:O6: {=WAHL(ZEILE(A1:A3);B6;B14;B20)}T3:=SUMME(T4:V6)U3: {=SUMME(WENNFEHLER(WAHL(SPALTE(A1:C1);VSplit(E4&" ";;1;1);G4:G6;I4:I5);""))}
11P4:P6: {=INDEX((B6;B14;B20);;;ZEILE(A1:A3))}V3:=AggregateXk(-9;6;WAHL(SPALTE(A1:C1);VSplit(E4&" ";;1;1);G4:G6;I4:I5))
12  W2:W3: {=WENN(ZEILE(A1:A2)=2;AggregateXk(9;6;INDEX((E4;G4:G6;I4:I5);;;ZEILE(A1:A3))*1^ZEILE(A1:A3));"INDEX dual")}
13T4:V6: {=WENNFEHLER(WAHL(SPALTE(A1:C1);VSplit(E4&" ";;1;1);G4:G6;I4:I5);"")}W4:W6: {=AGGREGAT(9;6;INDEX((E4;G4:G6;I4:I5);;;ZEILE(A1:A3)))}
Man möge sich dabei nicht vordergründig an den Summen aufhalten, um anzumerken, dass man das ja auch anders machen könnte. Das weiß ich und darum geht's hierbei auch nicht. Mir kommt's bei den Summen darauf an, was WAHL kann und INDEX nicht bzw nur in Form einer dualen Matrix­Fml (Q2:Q3; etwas, auf das die Wenigsten kommen dürften!) und das auch nicht immer (W2:W3).
Es ist durchaus möglich, nicht nur den ErgebnisBereich O4:O6 des Bsp mit INDEX zu realisieren (P4:P6), sondern auch T4:V6 (wer mag, kann gern eine entsprd Fml in der hoffentlich hierdurch angeregten Diskussion posten!). Ja, das wäre sogar einfacher, denn bei WAHL greift leider die Xl-Steuerung ein und vervielfältigt Einzelwerte (egal, ob skalar oder 1elementiger Vektor), die dann auch in die Summe eingehen. Das muss verhindert wdn, ob wie hier mit einer UDF oder anderweitig, sei jedem selbst überlassen. (Ob das nun ein uralter Xl-Bug oder ein Feature ist, mag jeder selbst entscheiden!)
Was aber nur WAHL kann, ist die Zusammenfassung von unterschiedlichen Datenfeldern zu einer gemeinsamen Ergebnis­Matrix. Das wird sogar im o.g. Tutorial erwähnt, aber nur unter dem Aspekt einer fall­weisen Einzel­Auswahl! Allerdings gibt's eine Einschränkung, die iW auch für die Darstellung unzusammen­hängender Bereiche mit INDEX gilt → es können nur gleichgerichtete Vektoren in einer Matrix zusammen­gefasst wdn! Ihre Elemente­Anzahl ist dabei idR irrelevant.
Tja, und R4:R6 zeigt ggüber S4:S6 den HptNachteil von WAHL ggüber dem Vorteil von INDEX → Letzteres liefert ZellBezüge, Ersteres nicht!
Viel Spaß! Luc :-?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Falls doch jemand etwas dazu schreiben ...
23.06.2016 23:47:03
Luc:-?
…möchte, Leute,
bin erst in 3 Tagen wieder da!
Luc :-?

AW: möglicherweise, doch ...
24.06.2016 13:35:48
...
... ich komme wahrscheinlich frühestens auch erst am Montag dazu, mir das anzusehen.
Gruß Werner

AW: bin immer noch nicht dazugekommen ...
28.06.2016 19:26:22
...
Hallo Luc,
... habe eben aber nur eine erste schnelle Sichtung vorgenommen. Das WAHL() mehr kann, als wie diese Funktion normalerweise meist nur genutzt wird, war mir auch schon aufgefallen. Habe in den vergangenen Jahren auch ab und zu diese Funktion für spez. Anwendungsfälle eingesetzt. Doch meist nur als Ersatz für ansonsten sehr lange WENN()-Schachtelungen.
Ich würde Deinen Ausführungen schon noch mal näher anschauen. Allerdings fehlt es mir momentan immer noch an Zeit um eigene Beispiele zusammenzustellen und in Deiner Angaben fehlen dagegen noch einige Daten so z.B. aus dem Spaltenbereich B:G. Kannst Du vielleicht mal die Datei einstellen oder mir zukommen lassen?
Für heute mache ich dann auch schon gleich wieder Feierabend.
Gruß Werner
.. , - ...

Anzeige
Ja, das mit den Daten ist richtig, ...
29.06.2016 01:45:26
Luc:-?
…Werner;
ich wollte die HTML-Tabelle nicht zu groß wdn lassen, zumal diese Daten in der reinen Wiedergabe (O4:P6 und T4:V6) ohnehin auftauchen. Aber sicher ist es einfacher, wenn ich die auch noch angebe:
B2:B21: ={99;63;76;27;66;21;34;70;29;59;33;52;60;78;3;91;22;41;38;5}
D4:M7: ={99.63.27.66.29.33.70.21.22.78;76."".59.60."".5.3.34.""."";"".""."".38.""."".41.52.""."";"".""."".""."".""."".91."".""}
Der Einfachheit halber habe ich die Daten in MatrixKonstanten­Schreibweise angegeben. So können sie auch schnell in die bezeichneten (Adress-)Bereiche einer TestDatei übertragen¹ wdn. Im Original stehen in D4:M7 Fmln, die unterschiedlich lange senkrechte Vektoren ausgeben. Das habe ich hier zu einer Matrix zusammengefasst (→ schnellere Übertragung, Fmln hierfür irrelevant).
Die OriginalDatei würde dich nicht begeistern, denn sie ist eine für diverse TestZwecke und fktioniert nur mit UDF-AddIn richtig (ist 'ne .xlsx). Ich habe sie hierfür nachgenutzt bzw wieder­verwertet (quasi recyclet).
Wichtig ist mir in bezug auf WAHL vor allem die Fähigkeit, diverse Ergebnisse (auch gleich­gerichtete, unter­schiedlich lange Vektoren problemlos zu Matrizen zusammen­zufassen². Das ist INDEX ggf nur für ZellBereiche möglich. PH hat das (im Tutoriums­Artikel) offen­bar nicht gesehen und deshalb bzgl Arg1 Falsches verkündet (ob MS das wusste, ist unklar, aber der WAHL-Pgmmierer mag's gewusst haben! ;-]).
Q4:S6 ist nicht so wichtig. Hier geht's mir ebenso wie beim Einsatz von AGGREGAT in der ZellBezugs­Variante nur um die Demonstration³, dass INDEX ZellBezüge liefern kann, WAHL aber nicht!
¹ Für Nachbauer, die nicht wissen wie's geht: Den angegebenen Bereich auswählen, Fml in die aktive Zelle eintragen und als MatrixFml abschließen. Ggf dann noch ganzen Bereich kopieren und Kopie darauf als Werte einfügen. Die vermeintlich leeren Zellen dann evtl noch löschen, wenn man eine original-analoge Ausgangs­Situation haben will.
² Ich hatte für so etwas mal die UDF Collect geschrieben, die aber nur sammelt (auch Matrizen!) und angebbare Teile der Sammlung wiedergibt, um sie (in der jeweiligen Fml) weiterzu­verwenden.
³ Die nicht-publizierte UDF CellContIn liefert hier Farbnamen zu den Zellen in ihrem Arg1-Ausdruck, was im Falle von WAHL natürlich fehl­schlagen muss.

Gruß, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige