[gelöst] Differenz mit variabler Bedingung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

[gelöst] Differenz mit variabler Bedingung

Beitrag von FM_81 »

Schönen guten Abend alle zusammen!

Folgende stilisierte CALC-Tabelle:

Code: Alles auswählen

  |    A    |    B    |    c    |
---------------------------------
1 |    3    |    1024 |         |
2 |    1    |    1049 |         |
3 |    4    |    1060 |         |
4 |    0    |    1078 |         |
5 |    2    |    2001 |         |
6 |    6    |    2080 |         |
7 |    1    |    2051 |    1002 |
8 |    3    |    2134 |         |
9 |    2    |    2545 |         |
10|    4    |    2789 |         |
11|    1    |    3003 |     952 |
12|    3    |    3217 |         |
In Spalte C soll folgendes passieren; wenn das entspr. Feld in Spalte A von 1 verschieden ist, soll C leer bleiben oder von mir aus auch Null sein. (OK, das ist der einfache Teil, das kriegt man mit einer WENN-Bedingung hin.)
Wenn aber A=1 ist soll in Feld C der entsprechenden Zeile die Differenz zwischen dem B-Wert dieser Zeile und dem B-Wert der Zeile wo A zuvor (weiter oben) das letzte mal 1 war, sein. (Der "Anfangsfall" in Zeile 2 kann unberücksichtigt bleiben.)

Geht sowas?

Vielen Dank, mit freundlichem Gruß, FM_81
Zuletzt geändert von FM_81 am Do, 14.04.2011 12:30, insgesamt 1-mal geändert.
echo
*******
Beiträge: 1006
Registriert: Fr, 14.11.2008 15:27
Wohnort: BRA - Nds

Re: Differenz mit variabler Bedingung

Beitrag von echo »

Hallo,
ich würde eine kleine Hilfsspalte davor machen in der alle Zeilen "markiert" werden in denen eine "1" steht.
Davor um mit SVerweis() arbeiten zu können. Index <> Vergleich geht natürlich auch.

Anschließend kannst du ganz leicht auf die vorletzte Zeile verweisen in der eine 1 steht.
siehe Anhang

Gruß Holger
Dateianhänge
Unbenannt 1.ods
(10.44 KiB) 50-mal heruntergeladen
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Differenz mit variabler Bedingung

Beitrag von Karolus »

Hallo
Nimm in C2:

Code: Alles auswählen

=WENN(MAX(ZEILE(A$1:A1)*(A$1:A1=A2))*(A2=1);B2-VERSCHIEBUNG(B$1;MAX(ZEILE(A$1:A1)*(A$1:A1=A2))-1;0);"")
aktiviere die Formel als Matrixformel ('strg+shift+enter' oder per [x]Matrixoption im Formelassistenten )
kopiere C2 und füge ein in den Bereich C3:C ?

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Differenz mit variabler Bedingung

Beitrag von clag »

Hallo Karolus,

an einer Lösung zu der Frage von FM_81 habe ich mich gestern auch versucht,
aber ich habe ähnlich wie Echo auch nur eine Variante mit Hilfsspalte realisieren können ;)

Da bin ich natürlich auf deine Lösung neidisch und nachbauen kann ich sie auch :lol:
aber
was mich nun wurmt ist, ich versteh sie nicht, insbesondere die spezielle Vorgehensweise bei der Vervielfältigung der einen Basis-Matrixformel :(

Bist du wohl so gut und erklärst mal etwas genauer wie deine Formel funktioniert ?

edit: meine Variante
Dateianhänge
47976-OOoForum.ods
(9.2 KiB) 53-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Re: Differenz mit variabler Bedingung

Beitrag von FM_81 »

Vielen Dank Euch beiden!

Die Lösung von "echo" kann ich mit meinem Office-Erfahrungsschatz sofort nachvollziehen.
Aber die Lösung von "Karolus" scheint mir irgendwie "eleganter"? :)

Auf jeden Fall DANKE und ich werde mich noch mal melden ...

MfG, FM_81
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Differenz mit variabler Bedingung

Beitrag von Karolus »

Hallo
@Clag
Welchen Teil verstehst du nicht ?
Deine Formel in G hat einen überflüssigen INDIREKT-ausdruck - ( *es existiert bereits die relative Adressierung* )
G2 → =WENN(F2*SUMME(F$1:F1);B2-INDIREKT("B"&MAX(F$1:F1));"")

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Re: Differenz mit variabler Bedingung

Beitrag von FM_81 »

Entschuldigung, wieso stehe ich hier jetzt plötzlich als Gast? Muss ich nicht verstehen, oder?
MfG, FM_81
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Differenz mit variabler Bedingung

Beitrag von Karolus »

Hallo
MAX(ZEILE(A$1:A1)*(A$1:A1=A2)
Gibt die höchste Zeilennr. in A$1:A1 zurück, bei der der Eintrag in A$1:A1 dem Eintrag von A2 entspricht.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Re: Differenz mit variabler Bedingung

Beitrag von FM_81 »

Danke schön!
Habe mich für die Variante ohne Hilfsspalte entschieden. Klappt wunderbar!

MfG, FM_81
Antworten