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

Laufzeit bei Unterbrechungen

Laufzeit bei Unterbrechungen
14.04.2015 16:56:42
Dustbin
Hallo Werner,
gibt es schon was neues bezüglich des Threats "Laufzeit bei Unterbrechungen"?
Du hattest damals noch um ein paar Tage gebeten :-).
Grüße
Dustbin

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
wie die Zeit vergeht ...
14.04.2015 17:44:25
der
Hallo Dustbin,
... sorry aber ich war einige Tage offline und der Thread scheint schon wieder im Archiv zu liegen.
Gib hier bitte noch mal den Link auf Deinen letzten Thread an. Vielleicht komme ich dann Morgen dazu.
Gruß Werner
.. , - ...

Das kann er viell nicht, ...
14.04.2015 20:04:43
Luc:-?
…Werner,
aber ich schon → siehe hier!
Hatte schon befürchtungen, ob deiner langen Abstinenz…
Gruß, Luc :-?

OT: Habe dir in der MxSache noch mal ...
15.04.2015 04:02:44
Luc:-?
geantwortet, Werner.
Morrn, Luc :-?

Anzeige
gelesen und festgestellt, dass ...
15.04.2015 09:22:47
der
Guten Morgen Luc,
... Du Deine Sichtweise nochmals auf Basis Deiner offensichtlich langjährigen Erfahrungen als Programmierer theoretisch untermauern wolltest.
Ich bin lediglich ein Anwender der vorhandenen Funktionalitäten. Und als solcher habe ich eben nun mal von Haus aus eine etwas andere Denk- und Sichtweise. Für mich sprechen deshalb Deine Argumentationen noch immer nicht eindeutig wie prinzipiell gegen meine vereinfachte "Klassifikation" von Formeln, die eine Matrix auswerten. Um diesbzgl. auf ein von Dir angeführtes Beispiel einzugehen, ist für mich die Formel: =SUMME({1;2;3}*{4;5;6}) eine {}-freie Matrixformel und die Formel {=SUMME(ZEILE(1:3)*ZEILE(4:6))} ist eben eine {}-MatrixFormel. Was spricht denn wirklich und konkret gegen (m)eine derartig vereinfachte Sicht?
Hier und jetzt nur etwas Deiner Aussage: "Die 1zellige MxFml ist der Sonderfall (die 2zellig-1zellige viell sogar weniger) und nicht umgekehrt!" . Dieser muss ich ebenfalls aus Anwendersicht widersprechen. In den Jahren seit dem ich mich in Excel-Foren bewege, "spielen" mehrzellige {}-MatrixFormeln kaum eine Rolle. Und in vielen Fällen von den sehr wenigen, wo solche als Lösung angeboten wurden sind, gab/gibt es zumindest als Alternative Lösungen, die mit kopierfähigen einzelligen Matrixformeln (mit oder ohne {}) ersetzt werden konnten/können. Und letztere sind mE auf jeden Fall z.B. bei evtl. "Tabellenstrukturanpassungen" flexibler.
Ich will damit nicht in Abrede stellen, dass - wie ich nun vermute - möglicherweise die mehrzelligen Matrixformeln zuerst im "Rennen" war und das auf dieser Grundlage sich die "Matrixtechnologie" für die einzelligen {}-Formeln entwickelt hat. Aber die Anwendungspraxis hat mE auf jeden Fall eine klare Entscheidung bzgl. der einzelligen Matrixformeln ergeben.
Gruß Werner
.. , - ...

Anzeige
Eine Fml oder Fkt kann uU mehrere Werte ...
15.04.2015 16:46:08
Luc:-?
…liefern, Werner,
die aber (in Xl) nur per MxFml abgebildet wdn können. Insofern bewegt sich die MxFml-Definition auf Abbildungs- und nicht unbedingt Berechnungs­Ebene. Das wird von allen Kalkulations­Software-Herstellern gleich definiert und interpretiert, aber unterschiedl umgesetzt. Folglich kann man das nicht einfach nach Belieben bzw vermeint­licher Praxis­Relevanz umdefinieren!
Die Kategorisierung als {}-freie bzw -behaftete MxFml ist somit irreführend, da sie sich nicht im Rahmen des eigentl Problems bewegt, sondern allein auf die optische Kenntlichmachung abstellt, die von Software zu Software anders erfolgen kann. Es darf und kann nicht erlaubt sein, eine allgemeine Erscheinung unter/hinter einer speziellen Betrach­tungs­weise zu verstecken. Das ist dann fast wie die Frage, Wer war zuerst da, das Huhn oder das Ei?
Man kann eine spezielle AbbildungsTechnik also nicht zum Maßstab aller Dinge (hier MxFml-Typ) machen, ohne sich dem Vorwurf unsystema­tischen Herangehens auszusetzen, denn man setzt damit quasi auf einem Zufall auf (beinahe wie weiland der Sammler und Kategorisierer im Produktions­prozess deformierter Zundhölzer oder mancher Sammler besonderer Gartenzwerge u.ä. Kuriositäten).
Ich teile Xl-MxFmln in 4 Kategorien ein, die 2 Kriterien mit je 2 Ausprägungen genügen. Damit wdn die Xl-Spezifika hinreichend berücksichtigt. Der Sonderfall bei 1zelligen MxFmln, dass für die eine Xl-Fkt die richtige Berechnung erst per MxFml angestoßen wdn muss, für andere aber nicht, könnte als eine Variante der 2zelligen quasi-1zelligen mxFmln angesehen wdn, wenn sich das nicht schon auf spezielle interne Pgmmierg beziehen würde. Folglich kennt meine Kategorisierung keine {}-freien MxFmln, denn das wäre ein Wider­spruch im System. Woran sollte man dann diese Definition festmachen? Streng mathematisch eigentlich nur an der Zurückgabe mehrerer Werte auf 1×. Damit würden aber alle 1zelligen MxFmln entfallen, was sicher kontra­produktiv wäre. Also sollte man sich schon an der Abbildungs­Technik orientieren, wie es auch MS vorgibt, weshalb wohl auch konstante Datenfelder Matrix­Konstanten heißen und stets die MxKlammern zeigen, egal, wieviel Elemente sie enthalten (der Fml-Assi zeigt die auch und mit [F9] wdn sie permanent!).
Noch ein Bsp mit 2 UDFs:
=VJoin({1;2;3}) ist wie SUMME im Bsp keine MxFml und ergibt 1 2 3 in einer Zelle
{=VJoin(ZEILE(1:3)) } ist eine MxFml und ergibt dasselbe, d.h., die Werte-Variation von ZEILE muss angestoßen wdn, erfolgt aber in nur einer Zelle (INDEX würde das nicht machen) ! Ohne das käme 0 heraus.
Und nun die Auswertung dieser Fmln als FmlTexte:
=TransFor("VJoin({1;2;3})") ⇒ 1 2 3
=TransFor("VJoin(row(1:3))") ergibt auch dasselbe, obwohl nun die {} fehlen.
Damit wäre zumindest die 2.TransFor-Fml nach deiner Definition eine {}-freie MxFml! ;-)
Aber warum dann nicht auch die 1. oder gar die 1.VJoin-Fml?
Du bemerkst sicher, worauf das hinausläuft…!
Gruß, Luc :-?

Anzeige
sicher... aber ...
15.04.2015 17:40:02
der
Hallo Luc,
... ich stelle fest, dass wir zumindest in einem Punkt noch verschiedener Ansicht sind. Ich sehe (in Excel und nur mit dem beschäftige ich mich und dies auch nur ohne VBA) die {}-nicht als eine "optische AbbildungsTechnik" sondern als eine Funktion an. Meine bisherige "Kategorisierung" orientiert sich somit schlicht und einfach nur an der Art der genutzten / nicht - Funktionalität, die für mich mit der spez. Formeleingabe aktiviert wird und eben nur durch die {}-Darstellung als solche gekennzeichnet ist (wie "normale" Formeln doch meist nur nach der in Ihr als Hauptfunktion genutzten Funktion bezeichnet werden)
Mich würde interessieren, wie Du Deine 4 Kategorien von Matrixformeln in möglichst kurzer prägnanter Kurzform selbst schreiben würdest? Deine hier dargelegten Aussagen sind für mich leider noch nicht eindeutig.
Auch würde mich interessieren, wo ich diesbzgl. klare Definitionen von MS nachlesen kann (und das möglichst in einer guten deutschen Übersetzung). Auch würde mich schon Aussagen anderer versierter Excelianer interessieren.
Für heute gehe ich nun aber gleich offline. Einen schönen Abend dann noch.
Gruß Werner
.. , - ...

Anzeige
Nicht 'optische AbbildungsTechnik', ...
15.04.2015 20:02:00
Luc:-?
…Werner,
sondern optische Kenntlichmachung einer Abbildungs­Technik. Diese Kenntlichmachung kann sich von Software zu Software unterscheiden, das Problem der Abbildung eines aus mehreren Werten bestehenden Fml­Ergebnisses bleibt aber gleich, denn es beruht auf mathe­mati­scher Grundlage.
Ein anderes Problem ist, wie ein aus der Berechnung eines Ausdrucks resultierendes Datenfeld direkt als Argument einer Fkt mit allen Elementen in die Gesamtrechnung eingehen kann, auch, wenn es nur einen Ergebniswert geben soll(/kann). Das wurde von den Xl-Pgmmierern unterschiedl gehandhabt. Bei als Bereich/Datenfeld vorgesehenen (Hpt-)Argumenten nehmen sie meist, was ankommt. D.h., einfache arithmetische Ausdrücke als solches Argument wdn von Xl komplett berechnet und mit allen Elementen an die jeweilige Fkt übergeben. Nicht so, wenn in diesem Ausdruck Fktt enthalten sind, die primär skalare Argumente verlangen. Das regelt dann die Xl-Berechnungs­Automatik, indem sie die Werte über den angegebenen Bereich variiert. Das passiert idR aber nur, wenn die Fml als MxFml kenntlich gemacht wird. Alles Weitere hängt dann von der Pgmmierg der HptFkt ab; sie kann die Einzel­Ergebnisse sammeln und zusammenführen (bei 1zelligen MxFmln idR der Fall) oder sie dem zutreffenden Element ihrer Ergebnis­Werte­Matrix zuordnen (geschieht regelmäßig bei INDEX).
Der Pgmmierer kann aber auch unabhängig von der Xl-Automatik vorgehen und in der HptFkt alle Werte berechnen, wenn der als Argument notierte Ausdruck mehrere Ergebnis­werte hergibt. Bei INDIREKT ist das auch nur dann der Fall, wenn als Arg1 ein Bereich direkt als Text angegeben wird oder Arg1 sich auf eine solche Angabe bezieht. Anderenfalls ist bekanntlich immer eine MxFml erforderlich, die zusätzlich durch N bzw T unterstützt wdn muss, um auch bei nur einer FmlZelle alle Elemente zu erfassen. Insofern stellen Xl-Fktt wie SUMMENPRODUKT eine pgm-technische Ausnahme dar, die man aber trotzdem nicht als {}-freie MxFml bezeichnen sollte, da das mit der eigentl MxFml-Proble­matik nur indirekt zusammenhängt — Fktt, die Vektoren/Matrizen verarbeiten können, gibt's viele, für die Ermöglichung der Variation skalarer Argumente ist idR die MxFktionalität der Xl-Automatik zuständig. Daran ändert auch nichts, dass es Fktt gibt, in die diese Fktionalität (oder evtl auch ihr Anstoß) zumindest zT einpgmmiert wurde. Man kann dann höchstens sagen, dass diese Fkt eine gewisse MxFktionalität übernimmt, aber ggf nur in einfachen Fällen, wie den bisher gezeigten. Schon mit einer etwas komplexeren Fml klappt das idR nicht mehr, wie folgendes Bsp zeigt:
{=SUMMENPRODUKT(WENN(REST(ZEILE(A1:A3);2)=0;0;ZEILE(A1:A3)))} ⇒ 4
Demggüber liefert die Auswertung dieser Fml mit TransFor* das gleiche Ergebnis ohne MxKlammern!
=TransFor("SUMPRODUCT(IF(MOD(ROW(A1:A3),2)=0,0,ROW(A1:A3)))")
Welche von beiden Fmln ist nun eine MxFml und welche nicht bzw nur eine {}-freie…? ;-)
Der SUMMENPRODUKT-Pgmierer hat also „nur“ einige einfachere Fälle abgefangen, sich aber sonst auf die in Xl eingebaute MxFktionalität verlassen, die zwar eine Funktion (von Xl) ist, aber keine Fkt im mathematischen Sinne!
Berechtigt allein die Tatsache, dass =SUMMENPRODUKT(ZEILE(A1:A3)) ganz ohne MxKlammern das richtige Ergebnis 6 liefert, schon zur Kategorisierung dieser Fkt als MxFml oder mit MxFml-Fktionalität? Dann müsste diese doch wohl stets zutage treten und nicht nur in sehr einfachen Fällen? Es handelt sich hierbei doch wohl „nur“ um ein spezielles Entgegen­kommen des Pgmmierers dem Endnutzer ggüber… ;-)
Die 4 Kategorien folgen später nach. Ich hatte dazu schon mal etwas formuliert, das ggf einer Ergänzung bedarf und das ich erst heraussuchen muss.
* Diese UDF basiert auf der vbFkt Evaluate, fktt also ähnlich wie die XLM-Fkt AUSWERTEN, bietet aber mehr Service und ist auch in ZellFmln einsetzbar. Ähnliche UDFs von mir sind die dir vorliegenden Compute und Explore.
Dito schöAb! Luc :-?

Anzeige
richtig, aber mE auch nicht ... und ...
16.04.2015 14:22:27
der
Hallo Luc,
... eine "optische Kenntlichmachung einer Abbildungs­Technik". Wie ich ja schon schrieb, ist für mich in Excel der spez. Eingabeabschluss einer Formel, der zur {}-Anzeige der Formel führt, eine Funktionalität. Und wenn ich Dich richtig verstanden habe, wird eine derartige erweiterte Auswertungsfunktionalität in anderen Kalkulationsprogrammen eben nur durch andere "Methoden" erzielt (Du schriebst: "In OO/LO bspw muss man ein Kästchen im FmlAssi anhaken" ...).
Deine fundierten Praxis- wie Theoriekenntnisse sind meinerseits unbestritten. Zur Zeit finde sich meine, ausschließlich in Forenpraxis gesammelten Formelkonstruktion-Erfahrungen, jedoch noch nicht in Deinen Darlegungen widergespiegelt.
Deine Formelbeispiele und die damit verbundene, zwar wohl eher rhetorischen Fragestellung, sind aus meiner Sicht zumindest unglücklich gewählt. Denn momentan hätte sich meine Antwort auf diese Frage noch nicht geändert. Denn siehe:
Das Formelkonstrukt {=SUMMENPRODUKT(WENN(REST(ZEILE(A1:A3);2)=0;0;ZEILE(A1:A3)))} ist schon _ deshalb unglücklich gewählt, weil diese als "{}-Matrixformel" von mir zumindest anstelle mit der SUMMENPRODUKT()-Funktion mit SUMME() so: {=SUMME(WENN(REST(ZEILE(A1:A3);2)=0;0;ZEILE(A1:A3)))} geschrieben worden wäre. Und diese wiederum wäre mit einer Funktion weniger, wie folgt: {=SUMME((REST(ZEILE(A1:A3);2)>0)*ZEILE(A1:A3))} noch einfacher in der Konstruktion und der Anwendung umzusetzen.
Dein UDF-Formelkonstrukt, für mich natürlich auch eine MATRIXFormel, ist schon deshalb auch unglücklich gewählt, weil ich auch mit Excel-Standardfunktionalität und auch ohne die {}-Funktionalität, das gleiche Ergebnis erzielen kann und das mE sogar auch effektiver als die erste {}-Matixformel, nämlich so:
 E
94

Formeln der Tabelle
ZelleFormel
E9=SUMME(INDEX((REST(ZEILE(A1:A3); 2)>0)*ZEILE(A1:A3); ))

Und auch diese ist für mich eine MatrixFormel (natürlich hier eine, die ohne die {}-Funktionalität zum richtigen wie gewünschten Ergebnis kommt).
Du merkst, mit mir hast Du es nicht leicht ;-)
Gruß Werner
.. , - ...

Anzeige
Das weiß ich, Werner, aber das zwingt mich ...
16.04.2015 16:06:31
Luc:-?
…auch zu stärkerer Systematisierung! ;-)
Aber bevor ich auf deine neuerlichen Argumente eingehe, hier erst mal die Nachlieferung meiner MxFml-Kategorisierung, die neben der Zelligkeit noch eine Stufigkeit der Berechnung postuliert. Beide wdn dann nach ein- und mehr- unterschieden:
1. 1zellig/1stufig ⇒ Anwen­dung pro­blem­los möglich; es werden stets alle Quell­werte in nur 1 Ergeb­nis­wert ein­bezo­gen.
2. mehr­zellig/1stufig ⇒ Anwen­dung eben­falls pro­blem­los möglich; die (unter­schied­li­chen) Ergeb­nis­werte werden nur in den mar­kier­ten Zel­len ange­zeigt und nur diese kön­nen dann sekun­där wei­ter­ver­ar­bei­tet werden.
3. 1zellig/mehr­stufig ⇒ Anwen­dung ist so nicht mög­lich; es müssen stets min­des­tens 2 Zel­len ange­ge­ben werden, um alle Ergeb­nis­werte unte­rer Stu­fen ein­zube­ziehen; es wird trotz­dem nur 1 (in allen mar­kier­ten Zel­len stets glei­cher) Ergeb­nis­wert geliefert. So ver­hal­ten sich bspw oft Matrix­for­mel­sum­men kom­ple­xer, Daten­fel­der lie­fern­der Aus­drücke.
4. mehr­zellig/mehr­stufig ⇒ Anwen­dung eben­falls pro­blem­los möglich; es wer­den stets alle Ergeb­nis­werte unte­rer Stu­fen ein­bezo­gen, aber nur in den mar­kier­ten Zel­len ange­zeigt.

Die XlFktt ZEILE und SPALTE lie­fern bspw stets Fel­der (auch aus nur einem Wert), nicht nur, wenn sie im Argu­ment einen mehr­zel­li­gen Bereichs­bezug ent­hal­ten u/o als Matrix­for­mel abge­schlos­sen wer­den.
Und genau das scheint bei der Pgmmierung von SUMMENPRODUKT berücksichtigt worden zu sein. Dabei ist natürlich zu bedenken, dass die Pgmmierg sicher nicht in VBA erfolgt ist, das gab's damals wohl noch nicht, und der Pgmmierer Zugriff auf Xl-Schnittstellen hatte, den ein externer Pgmierer nicht hat, so dass es ihm eher möglich war als mir, die Argumente einer Fkt auch als Ausdruck, nicht nur als Wert, zu isolieren. Um das mit VBA halbwegs exakt zu simulieren, ist ein ziemlicher Aufwand erforderlich. Ich habe es trotzdem versucht. Dabei ist Folgendes herausgekommen:
 ABCDE
111515151515
1299999
1399999
14A11:=PSumme1(ZEILE(1:5))
15A12:=PSumme1(ZEILE(1:5)*REST(ZEILE(1:5);2))
16A13:=PSumme1(WENN(REST(ZEILE(1:5);2)=0;0;ZEILE(1:5)))
17B11:=PSumme2(ZEILE(1:5))
18B12:=PSumme2(ZEILE(1:5)*REST(ZEILE(1:5);2))
19B13:=PSumme2(WENN(REST(ZEILE(1:5);2)=0;0;ZEILE(1:5)))
20C11:=SUMMENPRODUKT(ZEILE(1:5))
21C12:=SUMMENPRODUKT(ZEILE(1:5)*REST(ZEILE(1:5);2))
22C13: {=SUMMENPRODUKT(WENN(REST(ZEILE(1:5);2)=0;0;ZEILE(1:5)))}
23D11: {=SUMME(ZEILE(1:5))}
24D12: {=SUMME(ZEILE(1:5)*REST(ZEILE(1:5);2))}
25D13: {=SUMME(WENN(REST(ZEILE(1:5);2)=0;0;ZEILE(1:5)))}
26E11:=TransFor("SUM(ROW(1:5))")
27E12:=TransFor("SUM(ROW(1:5)*MOD(ROW(1:5),2))")
28E13:=TransFor("SUM(IF(MOD(ROW(1:5),2)=0,0,ROW(1:5)))")
29keine MxFml - Auswertung auf SUM-Basis
30keine MxFml - teilweise Auswertung
31keine MxFml - teilw Auswertung unter Hinzufügung von SUM
32keine MxFml - Original
33MxFml - Original

Dass du UDF-Bspp generell für unglücklich gewählt hältst, war zu erwarten. Aber dass eine Fml mitunter auch durch eine andere ersetzt wdn kann, ändert doch nichts an der Tatsache, dass eine x-beliebige Fml so fktioniert wie sie eben fktioniert. Das wäre mir zu zweck­praktisch gedacht — wahre Wissenschaft muss die Dinge erklären wie sie sind und nicht, falls eine Tatsache nicht ins Bild passt, einfach etwas Anderes daher­nehmen (ob wohl das mitunter auch anzutreffen ist, besonders in den nichtexakten Wissen­schaften → in der Archäologie hat sich das deutlich verbessert, obwohl immer noch scheinbar festgefügte Lehr­meinungen großen Einfluss ausüben, in der Ökonomie liegt's noch sehr im Argen, Wunschvor­stellungen dominieren den neoliberalen Mainstream), alles Andere wäre unwissen­schaftliche Scharla­tanerie (naja, das Mittel­alter feiert gerade wieder „fröhliche Urständ“, und das leider nicht nur auf MA-Spektakeln und -Märkten).
Und damit du auch (fast) alle Bspp nachvoll­ziehen kannst, hier noch die Pgmm der beiden UDFs PSumme1&2:
Function PSumme1(ParamArray Bezug())
Const myName$ = "PSumme1("
Dim klAnz As Long, pos(1) As Long, fml$
If UBound(Bezug)  0 Then
fml = Replace(fml, ",", Chr(0)): fml = Split(fml, Chr(0))
On Abs(UBound(fml)  UBound(Bezug)) GoTo nz
Else: fml = Array(fml)
End If
ReDim avParm(UBound(Bezug))
For Each x In fml
isRoCoX = False
While x Like "*ROW(*#:*#)*"
pos = InStr(x, "ROW(")
pFml = Mid(x, pos, InStr(pos, x, ")") - pos + 1)
aFml = "{" & Join(wf.Transpose(Evaluate(pFml)), ";") & "}"
x = Replace(x, pFml, aFml): isRoCoX = True
Wend
While x Like "*COLUMN([A-Z]*:[A-Z]*)*"
pos = InStr(LCase(fml), "row(")
pFml = Mid(fml, pos, InStr(pos, fml, ")") - pos + 1)
aFml = "{" & Join(wf.Transpose(Evaluate(pFml)), ",") & "}"
x = Replace(x, pFml, aFml): isRoCoX = True
Wend
If isRoCoX Then
avParm(ix) = Evaluate(x)
If Not IsArray(avParm(ix)) Then avParm(ix) = "sum(" & x & ")"
End If
ix = ix + 1
Next x
End If
nz: For ix = LBound(Bezug) To UBound(Bezug)
If IsArray(Bezug(ix)) Then
For Each x In Bezug(ix)
If IsNumeric(x) Then PSumme2 = PSumme2 + x
Next x
ElseIf Not IsEmpty(avParm(ix)) Then
If IsArray(avParm(ix)) Then
For Each x In avParm(ix)
If IsNumeric(x) Then PSumme2 = PSumme2 + x
Next x
ElseIf Not IsNumeric(avParm(ix)) Then
If Left(avParm(ix), 4) = "sum(" Then
avParm(ix) = Evaluate(avParm(ix))
If IsNumeric(avParm(ix)) Then PSumme2 = PSumme2 + avParm(ix)
End If
ElseIf IsNumeric(avParm(ix)) Then
PSumme2 = PSumme2 + avParm(ix)
End If
ElseIf IsNumeric(Bezug(ix)) Then
PSumme2 = PSumme2 + Bezug(ix)
End If
Next ix
fx: If CBool(Err.Number) Then PSumme2 = CVErr(Err.Number)
Set wf = Nothing
End Function
Ich bitte evtl andere Interessenten zu beachten, dass diese Fktt allein der Simulation des DiskussionsGgstandes im dargestellten Umfang dienen und keinen Anspruch auf universelle Einsetzbarkeit erheben!
Wie man sehen kann, erhält in diesem Fall auch SUMME alle Werte. Durch die Eingabe als MxFml wird der Fkt nur mitgeteilt, welche es auch verwenden soll. Gibt man die Fml nicht als MxFml ein, verwendet sie nur den ersten der von ZEILE gelieferten. SUMMENPRODUKT hingg verwendet alle, sofern diese nicht über eine mehrstufige Operation erst zusammengesetzt wdn (müssen). Deshalb habe ich auch den Begriff der Stufigkeit (von Rechen­Operationen) eingeführt. Eine einfache Multipli­kation von Vektoren (auch als Ergebnis einer auf einer relativ einfachen Rechen­Operation basierenden Fkt) fällt nicht darunter. Interessanterweise ließ sich gerade das (Ergebnisse der 2.Zeile) nicht so einfach mit PSumme2 simulieren. Ich musste dem intern die XlFkt Sum[me] hinzufügen, sonst wäre ebenfalls eine MxFml vonnöten gewesen.
Bei einer quasi (PSumme1, 1.Spalte) bzw real (letzte Spalte) Gesamt­Auswertung der Fml ist nie eine Eingabe als MxFml erforderlich, was meine gerade zuvor getroffene Aussage bestätigt.
Gruß, Luc :-?

Anzeige
ich bin kein Wissenschaftler ...
16.04.2015 17:42:01
der
Hallo Luc,
... und bin noch nicht mal Programmierer. Wohl stehe ich alle Wissenschaften wie Wissenschaftlern aufgeschlossen gegenüber, wohl wissend das es ohne die weniger Weiterentwicklung (egal auf welchen Gebiet auch immer) gab, gibt und geben wird. Aber ohne die, die die Erkenntnisse der Wissenschaftler nutzbringend umsetzen können, geht es genau so wenig. Und diese können das umso besser zu tun, je klarer und verständlicher die Wissenschaft das aufzeigen können.
Deine Darlegungen kann ich ich schon, wenn teilweise auch nur schemenhaft, nachvollziehen. Allein mir fehlt noch immer die Erkenntnis, welchen Nutzen Deine Ausführungen mir und Anderen (Excelnutzern) ermöglichen. Du hast Dir einerseits erneut sehr viel Mühe gegeben, mich in Deine "Welt" zu "ziehen", doch andererseits versäumt, mal ganz trival Vor- und Nachteile für den Normal-Excelanwender herauszustellen.
Gruß Werner
.. , - ...

Anzeige
Welche Vor- und Nachteile hat denn eine ...
16.04.2015 19:16:32
Luc:-?
…exakte Definition, Werner?
Der primäre Vorteil besteht doch darin, dass alle unter einem verwendeten Terminus das Gleiche verstehen (sollen)! Leider wird dieses einfache Prinzip immer wieder verletzt, indem entweder eindeutig definierte Begriffe in anderem Zusammenhang bzw für die falschen Erscheinungen benutzt wdn, wie das zum Bsp bei Mehrwert-Steuer der Fall ist (das ist eigentl eine Umsatz-Steuer, die letztlich der EndVerbraucher bezahlen muss, und wird vom FA ggüber den Abführenden auch so bezeichnet).
Einen Nachteil dieser Betrachtungsweise kann ich nicht entdecken. Es mag dem Xl-Ntzer zwar egal sein, aber eine Begriffsverwirrnis auf diesem Gebiet trägt nicht unbedingt zum Verständnis dieser komplexen Problematik bei. Deshalb halte ich mich an das Erschei­nungs­bild der Fml bei der Bestimmung, was eine MxFml ist oder eben nicht.
Man kann zwar sagen, dass eine bestimmte Fkt eine gewisse MxFktionalität beinhaltet, aber nicht behaupten, dass sie eine MxFml sei, ob mit oder ohne {}. Dazu ist diese Fktionalität bei den entsprd Fktt einfach auch nicht ausgeprägt genug. Die MxFktionalität ist eine generelle Eigenschaft von Xl, auch daran erkenntlich, dass immer alle Werte einer Fml berechnet wdn. Die Selektierung der zu verwendenden Werte und die Bestimmung der Art ihrer Verwendung erfolgt dann hptsächlich über die Angabe in der Zelle. Eine (Teil-)Ausnahme wie SUMMENPRODUKT oder einige Container-Fktt wie TEILERGEBNIS und AGGREGAT machen noch keine Regel! Solche Fktt verwenden eben generell alle Ergebnisse der 1.Berechnungsstufe, wohl weil der Pgmmierer (zumindest im Falle von SUMMENPRODUKT) davon ausging, dass nur die Verwendung des 1.Wertes wenig Sinn hat, wenn doch primär Matrizen verarbeitet wdn sollen! Aber solch Entgegenkommen hat auch Grenzen! Man wird wohl nie alle Eventualitäten berücksichtigen können (u/o wollen)!
Ich halte die MS-SprachRegelung für sinnvoll und praxisnah, denn alles Andere bedeutet Spekulation über Pgmierungs­Interna! Wo sollte man dann auch damit aufhören, was einbeziehen und was nicht? Demggüber ist es so doch einfach: {} → MxFml, fehlen sie → NormalFml!
Meine Klassifikation bezieht sich deshalb auch nur auf diese Definition von MxFml. Alles Andere wäre eine Diskussion/Spekulation über „Kaisers Bart“, nur mit dem Unterschied, dass dieser sichtbar ist/war, das Pgm einer XlFkt aber nicht! Folglich ist die Einteilung 1zelliger Fmln in NormalFmln und MxFmln ohne bzw mit MxKlammern ein falscher Ansatz, der nichts bringt außer Verwirrnis.
Wenn es um die Xl-Fktt geht, ist die von MS vorgenommene Klassifikation nach Anwendungs­Kategorien hilfreicher, auch wenn man unter anderem Gesichtspkt auch andere Kategorien bilden könnte. Aber so ist es nunmal vorgegeben (wahrscheinl einst schon von Lotus 1-2-3) und von vielen Konkurrenz­Produkten übernommen worden.
Gruß, Luc :-?

Anzeige
hier scheint mir auch des Pudels Kern zu liegen...
17.04.2015 14:59:34
der
Hallo Luc,
... wir streiten wie um des Kaisers Bart. Genau das war auch meine gestrige Intention. Du klassifizierst mit Deinen Kategorien mE die Haarqualität, Länge, Farbe des Kaisers Bart und lässt dabei die Formen und Gestaltungen anderer Bärte zumindest teilweise außen vor. Du orientierst Dich dabei danach was die Kaiserfriseure meinen oder gemeint haben könnten. Ich bin kein solcher und auch kein Friseur, aber ich habe (m)eine, besser geschrieben viele, Meinungen zu Bärten, auch oder gerade weil es eine Unmenge davon gibt. Glücklicherweise eben nicht nur den des Kaisers. Zumal der ja schon lange abgedankt hat.
Zurück zu Excel und MS. Du schreibst: "Wenn es um die Xl-Fktt geht, ist die von MS vorgenommene Klassifikation nach Anwendungs­kategorien hilfreicher" Mir geht nicht um die Definition von Funktionen sondern um eine möglichst einfach verständliche Kategorisierung von verschiedenartigen Formeln. Beginnt mit einfachen Zellbezugsformeln über einfachste mathematische Operationsformeln wie =2*3+7 oder eine Mix aus den beiden erst genannten. Dann weiter über Zellbereichsbezugsformeln unter Anwendung einer Funktion bis hin zu zu wirklich komplexen Funktions-Konglemeraten ...
Ich höre jetzt aber lieber auf, denn ich will lieber noch etwas die Bärte graulen ;-)
Gruß Werner
.. , - ...

Tja, DER Bart ist lang, aber ich klassifiziere ...
17.04.2015 20:31:02
Luc:-?
…mitnichten die „…Haarqualität, Länge, Farbe…“ desselben, Werner,
sondern seine Form, Schnurrbart, Vollbart, Backenbart usw, während du mit deiner Klassifikation quasi „falsche Bärte“ anklebst und die dann mit den echten durch­einander­wirfst. ;-)
Damit ist meine Klassifikation praxisnah, denn sie beruht auf beobachtbaren Tatsachen (für die ich auch Bspp beibringen könnte und vormals auch schon gebracht hatte), während die deine ein rein spekulatives Element enthält. Wenn du deine Klassifikation konsequent durchziehen würdest, würden die Ergebnisse so mancher, nur eine Zelle beanspru­chenden Fml plötzlich die einer MxFml sein. Damit käme das ganze System durch­einander!
Um es noch­mals deutlich zu machen, die MxFktiona­lität ist eine Eigenschaft der Software Xl bzw ihrer Calculation Engine, nicht irgend­einer (fest implemen­tierten, mathema­tischen) Fkt zur Fml-Verwendung! Sie variiert skalar vorge­sehene Fkts­Argumente, wenn diese als Bereichs­Bezug bzw Daten­feld ange­geben wdn. Bereichs­Zellen wdn dabei grund­sätzlich, auch ohne MxFml, über ihren Gesamt­Bereich variiert, Daten­felder nur, wenn sie anstelle eines skalaren Arguments notiert wdn. Die MxFktio­nalität hat also 2 Aufgaben:
1. Auswahl des passenden Elements aus einer Matrix anhand der Postion der Fml und …
2. Ermöglichung der Rückgabe aller Ergebnisse einer Fml über den zuvor ausgewählten Bereich.
Dass eine MxFml mitunter auch nur ein Ergebnis haben kann, ist somit ein Sonderfall und von der jeweiligen Fml (speziell auch von den in ihr verwendeten Fktt) abhängig. Damit sind aber diejenigen Fmln, die das Gleiche ohne MxFktio­nalität erreichen, nicht auch gleich MxFmln, und nicht nur, weil sie auf Einzel­Ergebnisse beschränkt sind!
Das versuche ich mit den folgenden Bspp, die sich auf die Demon­stration der MxFktio­nalität konzen­trieren, zu verdeutlichen:
 HIJKL
9123H9:J9: {=TestMxV({1.2.3})}
10#WERT!#WERT!#WERT!H10:J10: {=TestMxR({1.2.3})}
11123H11:J11: {=TestMxR(H9:J9)}
12123H12[:J12]:=TestMxR(H9:J9)
13111H13[:J13]:=TestMxV({1.2.3})
14123H14[:J14]:=TestMxV(H9:J9)
15123H15:J15: {=TestMxV(H9:J9)}
16111H16[:J16]:=INDEX({1.2.3};)
17111H17[:J17]:=INDEX({1.2.3};{1.2.3})
18123H18:J18: {=INDEX({1.2.3};{1.2.3})}
19123H19[:J19]:=INDEX(H9:J9;{1.2.3})
20123H20:J20: {=INDEX(H9:J9;{1.2.3})}
21#WERT!#WERT!#WERT!H21:J21: {=TestNoMxN({1.2.3})}
22#WERT!#WERT!#WERT!H22[:J22]:=TestNoMxN({1.2.3})
23#WERT!#WERT!#WERT!H23[:J23]:=TestNoMxT({"X"."Y"."Z"})
24#WERT!#WERT!#WERT!H24:J24: {=TestNoMxT({"X"."Y"."Z"})}

Man kann hier deutlich erkennen, dass in Nicht-MxFmln nur Bereiche variiert wdn, Daten­felder nur, wenn sie anstelle eines skalaren Arguments angegeben wurden.
Die verwendeten UDFs sind trivialer Natur und dienen nur der Demon­stration dieses Effekts:
Function TestMxV(Bezug): TestMxV = Bezug: End Function
Function TestMxR(Bezug As Range): TestMxR = Bezug: End Function
Function TestNoMxN(Bezug As Double): TestNoMxN = Bezug: End Function
Function TestNoMxT(Bezug As String): TestNoMxT = Bezug: End Function

Gruß, Luc :-?

Noch ein notwendiger OT-Nachtrag, falls das ...
18.04.2015 04:14:57
Luc:-?
…ein Fachmann liest und über Umsatz-/Mehrwertsteuer stolpert (hatte ich zuvor vergessen):
Für das FA ist es zwar eine UmsatzSteuer, aber da diese im Warenpreis enthalten ist und vom USt-Pflichtigen nur ans FA abgeführt wird, trägt sie letztlich der EndVerbraucher, so dass es sich eigentlich um eine VerbrauchsSteuer handelt. Mit der klassischen Mehrwert-Definition hat das rein gar nichts zu tun, denn die bezieht sich auf die Differenz zwischen in den Produktions­prozess eingehenden (anteiligen) Werten und dem Wert des EndProdukts (value, alle gemessen in Preisen), der sich am (weltweit) niedrigsten Aufwand orientiert, während die gesetzgebende Politik mit der Namenswahl offensichtlich auf die Gebrauchswert-Differenz abzielt, was natürlich Unfug ist, denn letztlich hat nur das EndProdukt irgendeinen Gebrauchswert (worth) für den Käufer, nicht seine Ausgangskomponenten. Dagg haben alle immer einen Wert und damit auch einen Preis. Hier wird also nur verschleiert, dass der eigentliche Mehrwert beim Produzenten verbleibt, denn den muss er unbedingt erreichen, will er Erfolg haben.
Luc :-?

aber er ist auch nicht ab ...
18.04.2015 09:41:29
der
Hallo Luc,
... diese Deiner Argumentation ist, auf den ersten Blick gesehen (muss gleich wieder offline gehen; melde mich Morgen noch einmal) die bisher überzeugendste. Doch stellt sie mich noch nicht zufrieden. Hast Du was anderes erwartet? ;-).
Ich hatte mir Heute Morgen auch noch mal Gedanken gemacht und bin zu einer - wenn auch aus Deiner Sicht vielleicht unwissenschaftlichen - aber so doch mich einigermaßen zufriedenstellenden Kompromiss gekommen (Siehe dazu mal in OE-Forum).
Gruß Werner
.. , - ...

Ergänzung: Es muss wie folgt heißen, ...
18.04.2015 12:30:22
Luc:-?
…Werner;
statt: Man kann hier deutlich erkennen, dass in Nicht-MxFmln nur Bereiche variiert wdn, Daten­felder nur, wenn sie anstelle eines skalaren Arguments angegeben wurden.
…sollte es so lauten:
Man kann hier deutlich erkennen, dass in Nicht-MxFmln nur Bereiche variiert wdn, Daten­felder nur in MxFmln und dann auch, wenn sie anstelle eines skalaren Arguments angegeben wurden.
Die #WERT!-Fehler sind übrigens der speziellen DatenTyp-Festlegung des Arguments der jeweiligen UDF zu verdanken. Dadurch gelangt sie gar nicht erst zur Abarbeitung → Xl bricht nach DatenTyp-Prüfung sofort ab. Das sollte zusätzlich demonstrieren, wieviel Einfluss die Nicht-Festlegung eines speziellen DatenTyps auf die universelle Einsetzbarkeit einer UDF hat. Wenn sie im HptArgument auch Daten­felder oder ganze Bereiche komplett problemlos und unabhängig von der Xl-MxFktionalität verarbeiten soll, muss das pgmmiert wdn (was wohl auch bei diversen XlFktt der Fall sein dürfte).
Die Schreibweise H19[:J19]: verwende ich normalerweise immer dann, wenn die nachfolgende Fml sich nur auf die 1.Zelle bezieht, in den ff Zellen dann variiert wird. Da das hier aber nicht der Fall ist, die Fml ist in allen Zellen die Gleiche, wäre das nicht erforderlich gewesen. Es gilt hier also auch H15:J15:!
Weiter dann also evtl auf Ol-Xl.
SchöWE, Luc :-?

Für Interessenten: Es geht jetzt ...
21.04.2015 19:34:31
Luc:-?
hier weiter!
Luc :-?

hier ist eine Formelerweiterung notwendig ...
15.04.2015 09:47:39
der
Hallo Dustbin,
... nachfolgende Formel nach unten kopiert, berücksichtigt unter den bereits benannten Bedingungen (Sortierung nach Kunde, dann aufwärts nach "von" und danach aufwärts nach "bis") nun auch derartige Sonderfälle sowie auch verschiedene Kunden. Teste noch mal mit Deinen Daten, irgendwie ist mir, als ob ich noch nicht alle Eventualitäten berücksichtigt habe:
 ABCDE
3KundeVonBisHilfsspalteJahre
4A01.01.199430.06.19940 
5A01.01.199431.07.19940 
6A01.01.199431.08.19940 
7A01.01.199431.12.19940 
8A01.01.199431.05.19950 
9A01.01.199431.05.19950 
10A01.01.199430.11.19970 
11A01.01.199431.12.19980 
12A01.01.199431.12.19980 
13A01.01.199431.10.19990 
14A01.01.199431.03.20010 
15A01.01.199431.08.20010 
16A01.01.199431.12.20010 
17A01.01.199430.09.20030 
18A01.01.199431.12.20030 
19A01.01.199431.05.200410,4 
20A01.02.199430.06.19960 
21A01.04.199430.06.19960 
22A01.07.199630.09.19970 
23A01.09.201431.08.20160,3 
24A01.01.201531.12.2016212,7
25B01.01.199430.09.20030 
26B01.01.199431.12.20030 
27B01.01.199431.05.200410,4 
28B01.02.199430.06.20030 
29B01.04.200130.06.19960 
30B01.04.200130.09.19970 
31B01.09.201431.08.20160,3 
32B01.01.201531.12.2016212,7

Formeln der Tabelle
ZelleFormel
D4=RUNDEN((MIN(MAX(C4;C3); (A5=A4)*MAX(B5*(C5>=C4); C4*(C5<C4))+9^9*(A5<>A4))-B4)/365,25;1)*(C4>=MAX(INDEX(A:A;VERGLEICH(A4;A:A;)):C3))
E4=WENN(A4=A5;"";SUMMEWENN(A:A;A4;D:D))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

AW: hier ist eine Formelerweiterung notwendig ...
16.04.2015 13:03:27
Dustbin2001
Hallo Werner,
ich befürchte dein Einwand mit "alle Eventualitäten" bewahrheitet sich. Ich habe die Formel auf meine Daten angewendet. Allerdings kommt nicht immer das richtige Ergebnis heraus. Ich verstehe noch nicht weshalb es manchmal passt und manchmal nicht. Siehe File-Upload:
https://www.herber.de/bbs/user/97111.xlsx
Wo hakt es noch? Leider weiß ich in der Tat nicht wie ich einen Thread mit dem alten verlinken kann ...
Danke u. Grüße
Dustbin

Noch offen, Werner! ;-) Gruß owT
16.04.2015 16:07:58
Luc:-?
:-?

ich weiß ... Morgen ist auch noch ein Tag ;-) owT
16.04.2015 17:47:13
der
Gruß Werner
.. , - ...

ganz anderer Formelansatz ...
17.04.2015 15:43:25
der
Hallo Dustbin,
... ich denke mit der neuen Formel D4 in der Hilfsspalte sollte ich nun die Wesentlichsten Eventualitäten berücksichtigt haben:
 ABCDE
3KundeVonBisHilfsspalteJahre
4A01.01.199430.06.19940,49 
5A01.01.199431.07.19940,08 
6A01.01.199431.08.19940,08 
7A01.01.199431.12.19940,33 
8A01.01.199431.05.19950,41 
9A01.01.199431.05.19950 
10A01.01.199430.11.19972,5 
11A01.01.199431.12.19981,08 
12A01.02.199431.12.19980 
13A01.03.199431.10.19990,83 
14A01.04.199431.03.20011,42 
15A01.05.199431.08.20010,42 
16A01.06.199431.12.20010,33 
17A01.07.199430.09.20031,75 
18A01.07.199431.12.20030,25 
19A01.07.199431.05.20040,42 
20A01.07.199430.06.19960 
21A01.07.199430.06.19960 
22A01.07.199630.09.19970 
23A01.09.201431.08.20162 
24A01.01.201531.12.20160,3312,72
25B01.10.199031.03.19910,5 
26B01.10.199031.03.19910 
27B01.01.199131.03.199100,50
28C01.09.198131.08.19876 
29C23.09.198122.09.19870,06 
30C01.11.198231.08.19870 
31C01.12.198231.12.19881,28 
32C01.01.198431.05.19840 
33C01.06.198431.12.19860 
34C20.06.198419.09.19870 
35C15.12.198614.07.19890,53 
36C01.01.198930.06.19922,96 
37C16.06.198915.07.19920,04 
38C01.11.198931.10.19920,311,17

Formeln der Tabelle
ZelleFormel
D4=RUNDEN(WENN(A4=A3;MAX(MAX(INDEX(C:C;VERGLEICH(A4;A:A;)):C4)-MAX(INDEX(C:C;VERGLEICH(A4;A:A;)):C3;B4); 0)*(C4>C3); C4+(C4=0)*HEUTE()-B4)/365,25;2)
E4=WENN(A4=A5;"";SUMMEWENN(A:A;A4;D:D))

Gruß Werner
.. , - ...

AW: ganz anderer Formelansatz ...
20.04.2015 10:13:43
Dustbin2001
Hallo Werner,
ich ziehe den Hut - vielen Dank für die Unterstützung. Klappt prima.
Grüße
Dustbin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige