Mich hat das aber trotzdem mal interessiert, ...
22.06.2018 23:52:47
Luc:-?
…Werner,
und so habe ich das bzw so etwas mal prinzipiell zu lösen versucht, zumal mir der genannte, selbsternannte „TabellenExperte“ allerhöchstens ein ganz normaler Profi zu sein scheint.
Unabhängig von Marcs Szenario, aber an dieses angelehnt, habe ich den ZellBereich A1:M45 mit beliebigen Zahlen gefüllt und dann die von Marc angegeben, regelmäßig verteilten Zellen per Fml ausgewählt, die jeweils 4 Zellen zeilenweise summiert und dann aus diesen Summen die 3 größten ausgewählt.
Die relevanten TestDaten sahen dann so aus:
Spalte A
Spalte E
Spalte I
Spalte M
Zeile 3: 601,45
24,70
542,97
59,80
Zeile 6: 926,22
111,92
368,83
456,97
Zeile 9: 308,57
566,87
833,92
416,47
Zeile 12: 174,11
419,92
337,77
408,14
Zeile 15: 73,22
301,11
442,85
289,12
Zeile 18: 363,67
818,91
0,16
981,35
Zeile 21: 163,07
796,84
909,08
544,11
Zeile 24: 521,03
615,50
369,36
942,57
Zeile 27: 675,41
286,38
261,62
295,16
Zeile 30: 475,13
236,51
48,68
670,31
Zeile 33: 624,23
309,48
232,88
685,61
Zeile 36: 634,07
326,40
875,67
528,60
Zeile 39: 378,27
525,54
506,55
536,12
Zeile 42: 30,98
869,21
494,68
972,79
Zeile 45: 401,67
992,47
760,47
179,75
Die Lösung enthält dann natürlich meine beiden, immer sehr hilfreichen Standard-Archiv-UDFs, die auch in den bisher nur Dir vorliegenden Versionen fktionieren sollten. Dazu kommt dann in Variante 1 noch die auswertende UDF TxEval, während in Variante 2 statt dieser die XLM-Fkt AUSWERTEN benutzt wird. Dabei bin ich zu neuen interessanten Erkenntnissen bzgl AUSWERTEN u. INDEX in Zusammenarbeit mit der Xl-Steuerung gelangt, auf die ich zT in einem aktuelleren Thread zurückkommen werde. Die singularen MatrixFmln sehen dann so aus:
Variante1 →O51:O53: {=KGRÖSSTE(TxEval(VSplit("sum("&WECHSELN(VJoin(--INDEX(A1:M45;ZEILE(1:15)*3;(SPALTE(A:D)-1)*4+1);"";2);";";
"}) sum({")&")"));ZEILE(1:3))}
Variante2 →P51:P53: {=KGRÖSSTE(ZSummen;ZEILE(1:3))}
ZSummen:=--AUSWERTEN(VSplit("summe("&WECHSELN(VJoin(--INDEX(A1:M45;ZEILE(1:15)*3;(SPALTE(A:D)-1)*4+1);;2);";";
"}) summe({")&")";;;1))
Die Ergebnisse beider Varianten sind gleich, nämlich {2448,46;2413,1;2367,66}, und stimmen mit denen der KontrollRechnungen überein. Das zusätzliche VSplit-Argument4 bei Variante2 kann auch durch umfassendes MTRANS ersetzt wdn. Dieses, vertikale ErgebnisAusrichtung angebende Argument war bei Variante1 nicht erforderlich, dafür aber ein LeerText als Arg2, der die MatrixKonstanten-Ausgabe in US-Notation veranlasst (anderenfalls kann TxEval die nicht auswerten).
Auffällig ist hierbei aber, dass die Xl-Steuerung schon durch eine einfache Multiplikation mit 1 (--) dazu veranlasst wird, die gesamte INDEX-Matrix zu verwenden. Ohne das, klappte es nicht! Das einmal erkannt, habe ich es auch auf AUSWERTEN angewendet, das zuvor ebenfalls die GesamtMatrix nicht verwenden wollte, und siehe da, dann hatte's in der ZellFml fktioniert! ;-)
Offensichtlich muss also mitunter nur eine weitere einfache arithmetische Operation direkt auf das primäre AUSWERTEN- bzw INDEX-Ergebnis angewendet wdn, um zum richtigen Ergebnis zu gelangen. So kann man idR auch bei dualen MxFmln verfahren, was ich in dem o.e. Thread zeigen werde (Daten liegen zZ auf anderem PC).
🙈 🙉 🙊 🐵 Gruß + schöWE, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …