1) Der Ausnahmenbereich kann genauso auch zum Regelbereich werden (dann lückenlos bestimmt) 2) Es werden die Positionen zusätzlich gebildet, also pro Zeile am Beispiel USD x Tage = Positionsbetrag 3) Es ist die Ausgabe der (1) Gesamttabelle, (2) Durchschnittssatz (hier im Thread: USD), (3) Summe der Positionen möglich 4) Anstelle von Datümern kann man auch andere ganzzahlige Bereiche nehmen 5) Ungefragt habe ich noch eine MwSt- und eine Rechnungsbetrag- hinter der Summenzeile angehängt, die man (alle drei) nach Belieben auch WEGLASSEN() kann.
Function F_snb(sn, sp, t) n = sp(1, 1) For j = sn(1, 1) To sn(1, 2) For jj = n To sp(2, 2) If j = jj Then Exit For Next y = y + IIf(jj <= sp(1, 2), sp(1, 3), IIf(jj >= sp(2, 1), sp(2, 3), t)) n = jj + 1 Next
F_snb = y / (sn(1, 2) - sn(1, 1) + 1) End Function
ich bin dir noch eine Antwort schuldig auf Deine Frage in #9. Sorry. Ich konnte jedoch erst heute Nachmittag wieder online gehen.
Nein, es ist ganz leicht meine in #7 eingestellte Formel für 2 auf 3 Raten zu erweitern. Lediglich meine dortige Auswertungsformel würde dann entsprechend etwas länger. Dies hier darzustellen, verzichte ich allerdings. Denn bevor evtl. die Frage nach weiteren auszuwertenden Raten gestellt wird, habe ich jetzt meine Auswertung allgemein erweitert und dabei gleichzeitig die Formellänge verkürzt. Dafür notwendig wurde lediglich eine weitere uralt XL-Funktion und (in meiner älteren XL-Version) zwei weitere kleine benannte Formeln, welche in XL365 wohl sicherlich einfach durch LET() ersetzt werden könnten.
Mit meiner nachfolgenden Formeldefnition können akt. bis zu 95 Raten ausgewertet werden, die zudem in B5:C99 auch unsortiert angeordnet sein können. Natürlich sollten es aber keine zeitliche Überlappungen zwischen den einzelnen Zeitdaten geben.
Bitte beachten: In der obigen Darstellung fehlt noch die bereits in #7 benannte Formel: _Tage:=ZEILE(INDEX(!$A:$A;!$B$3):INDEX(!$A:$A;!$C$3)) Da diese benannte Formel lediglich für die gelisteten zwei benannten Formeln als Teilargumente (somit aber in der 2. "Unterebene" liegen) benötigt werden, werden diese durch das Tool von Gerd Bamberg leider nicht gelistet. Für die Auswertung ist sie natürlich auch zwingend notwendig zu defnieren.
24.10.2023, 11:17 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2023, 11:44 von maninweb.)
Hallo neopa,
Deine Lösung ist klasse! Habe die mal so umgebaut, dass diese bei Excel 365 den Bereich zu den Raten dynamisch adressiert und ohne Namen auskommt. Die Lösung braucht somit nur fünf Excel-Funktionen, inklusive LET.
24.10.2023, 16:30 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2023, 16:31 von snb.)
Froh mit VBA: ohne Beschränkungen.
PHP-Code:
=F_snb($A$1:$B$1;$E$1:$G$5)
UDF
Code:
Function F_snb(sn, sp) y = sp(1, 3) * (sn(1, 2) - sn(1, 1) + 1) For j = sn(1, 1) To sn(1, 2) For jj = 2 To sp.Rows.Count y = y + (j >= sp(jj, 1)) * (j <= sp(jj, 2)) * (sp(jj, 3) - sp(1, 3)) Next Next
F_snb = y / (sn(1, 2) - sn(1, 1) + 1) End Function
24.10.2023, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2023, 16:41 von maninweb.)
Hallo,
@LCohen: die Beschränkung scheint mir zumindestens teilweise aufgehoben bzw. auf die maximale Zeilenanzahl erweitert, wenn man MTRANS nur zum Rechnen verwendet.
PHP-Code:
=SUMME(MTRANS(SEQUENZ(1048576;1;1;0)))
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards https://de.excel-translator.de/translator:: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Interessant ... hatte es nicht ausprobiert. Dann bliebe aber noch der Umstand, dass man möglichst nicht zu große MTRANS-Matrizen aufspannen sollte. Die frühere quadratische Limitierung war ungefähr 5000 x 5000 per MTRANS (genaues Limit steht bei Excelformeln oder bei XLimits).