Wie bilde ich per Excel Formel einen Zahlenbereich auf einen anderen ab?

...komplette Frage anzeigen

3 Antworten

ich fürchte zwar, dass das Beispiel nur ein sehr spezielles Nebengleis ist, aber wenn in A1 die Monatszahl steht, dann (für 2016):

=MONATSENDE("1.1.16";A1)-"31.12.15"

Das liefert die kumulierten Tage, auch in Schaltjahren richtig.

Ansonsten den Bereich 1..12 definieren (sei A1..A12) und daneben in B das einzutragende Argument auflisten. Formel:

=index(B1:B12;Vergleich(Wunschzahl;A1:A12;0);1)

Wichtig: Wenn der Bereich in B mit Zeile 1 beginnt, ist die Nr. der Vergleichszelle gleich der Zeile des gefundenen Infex-Werts. Ist so am einfachsten, da ansonsten Korrekturglied nötig!

da ist mir noch aufgefallen, dass in der Monatsendeformel die 1 in A1 den Februar liefert, da A1 ein Addend für den genannten Monat (=0) ist. Für eine Monatsliste von 1..12 muss die Formel also so heissen:

=MONATSENDE("1.1.16";A1-1)-"31.12.15"

anstatt des 31.12.15 könntest Du auch -"1.1.16"+1 nehmen (-1.1.16 zieht ja einen Tag zuviel ab, der wieder draufgeschlagen werden muß)

die Index-Formel stimmt aber so. Wobei A1:A12 durchaus auch woanders stehen könnte, zB in X11:X22, die Vergleichsfunktion liefert nämlich nur die Listennummer der übereinstimmenden Zelle im VergleichsBereich, Index holt aus dem Bereich B1:B12 dann den Wert mit der gleichen Listennummer. Aber natürlich ist es übersichtlicher, wenn die zugehörigen Werte nebeneinander stehen.

Im Gegensatz zum SVerweis kann in Index die Ergebnisspalte aber auch links von der Vergleichsspalte stehen und Du siehst auch sofort, dass der Wert aus B1:B12 geholt wird. (es gibt noch ein paar Vorteile mehr)

0

Das würde hiermit gehen, wobei du entweder das tatsächliche Jahr einträgt oder ein Nicht-Schaltjahr fest vorgibts (mit dem Jahr 2016 ergeben sich ja 60 Tage bis Ende Februar statt 59...)

=TAGE(DATUM(2016;A1+1;1);DATUM(2016;1;1))

Eure Tipps waren gut.... jedoch ist mir noch ein kleines Problem aufgefallen, wenn ich beispielsweise diese Formel nehme: 

=WAHL(A1;31;59;90;120;151;181;212;243;273;304;334;365)

wenn in Zelle A1 die Null steht, dann habe ich ERROR.... da gibt es sicherlich ne kleine Ergänzung, wie ich das hinbekommen kann. Wer kann helfen?

0
@Perfekturius

das könntest du so lösen

=WENNFEHLER(WAHL(A1;31;59;90;120;151;181;212;243;273;304;334;365);"")
2
@Jackie251

oder

=Wahl(A1+1;0;31;28;...

also einfach ein zusätzliches Glied für die Liste und A1-korrigiert darauf verweisen.

aber wennfehler ist eine gute Lösung.

1

Allgemein kannst du so etwas mit der Funktion WAHL oder SVERWEIS umsetzen. Bei den Monaten kannst du das natürlich über ein Format lösen.

=WAHL(A1;"Jan";"Feb";"Mrz";"Apr";"Mai";"Jun";"Jul";"Aug";"Sep";"Okt";"Nov";"Dez")
=SVERWEIS(A1;{1."Jan";2."Feb";3."Mrz";4."Apr";5."Mai";6."Jun";7."Jul";8."Aug";9."Sep";10."Okt";11."Nov";12."Dez"};2)

DH!
Auf das in der Frage vorkommende Szenario angepasst wäre das dann z.B.:

=WAHL(A1;31;59;89;120;...usw.)

0

Wenn ich also in Zelle A1 die Zahl 1 stehen habe, so bedeutet es den Januar, welcher 31 Tage hat. Somit soll in Zelle A2 die Zahl 31 stehen. Wenn die Zahl 2 steht, so soll in A2 die Zahl 59 stehen usw.

Du willst also kumulieren? Für dieses Jahr würde das zum Beispiel gar nicht passen. Kumulieren würde so funktionieren:

=WAHL(A1;31;59;90;120;151;181;212;243;273;304;334;365)

oder

=SVERWEIS(A1;{1.31;2.59;3.90;4.120;5.151;6.181;7.212;8.243;9.273;10.304;11.334;12.365};2)

Mit dem SVERWEIS kann man auch Bereiche abbilden. Eventuell musst du für WAHL und SVERWEIS eine Normalisierung vorschalten.

0

Noch eine Möglichkeit:

=SUMMENPRODUKT((ZEILE($1:$12)<=A1)*{31;28;31;30;31;30;31;31;30;31;30;31})
2

Was möchtest Du wissen?