rechnet VERGLEICH() unterschiedlich?

Hallo,
ich habe mit mit der Funktion VERGLEICH() beschäftigt und dabei
festgestellt, dass es unterschiedliche Ergebnisse liefert in
Abhängigkeit davon, ob der Input aus manuell eingegebenen Werten oder
aus Formelberechnungen stammt.

Hier zur Verdeutlichung, was ich meine:
In Spalte A soll nach dem Wert "1" (als Zahl) gesucht werden. Die Formel
dazu in B5 und C5 (und darunter gefüllt) lautet:
=VERGLEICH(1;A$1:A5;1)
=VERGLEICH(1;A$1:A6;1)
... usw.
Erwartete Ausgabe wäre die Zeilennummer des letzten Vorkommens von 1 in
Spalte A, beginnend in Zeile 5 bis zur aktuellen Zeile. In Spalte B
funktioniert das wie erwartet, dafür wurden die Einsen in Spalte A
manuell eingetippt. Werden die Einsen jedoch mit Formeln errechnet, und
sei es so etwas einfaches wie
=WENN(A5=1;1;0)
dann ergibt sich etwas von mir so nicht erwartetes und nicht
verwertbares. Wo liegt mein Denkfehler?

  A B C
... ... ... ...
5 4 #NV
6 4 #NV
7 4 #NV
8 4 #NV
9 4 #NV
10 1 10 10
11 10 10
12 10 10
13 10 10
14 10 10
15 1 15 10
16 15 10
17 15 10
18 15 10
19 15 10
20 15 15
21 1 21 15
22 21 10
23 21 10
24 21 10
25 21 10
26 1 26 10
27 26 10
28 26 10
29 26 10
30 26 10
31 1 31 10
32 31 21
33 31 21
34 31 15
35 31 15

Hallo Boris,

In Spalte A soll nach dem Wert "1" (als Zahl) gesucht werden. Die Formel
dazu in B5 und C5 (und darunter gefüllt) lautet:
=VERGLEICH(1;A$1:A5;1)
=VERGLEICH(1;A$1:A6;1)
... usw.
Erwartete Ausgabe wäre die Zeilennummer des letzten Vorkommens von 1 in
Spalte A, beginnend in Zeile 5 bis zur aktuellen Zeile.

Aber nur, wenn die Werte in der Suchmatrix aufsteigend sortiert
sind. So ist es definiert. Ein paar Einsen und dazwischen einige
leere Zellen, erfüllen diese Voraussetzung nicht.

Schau mal in der Online-Hilfe nach den möglichen Variationen für das
dritte Argument Typ=1 oder Typ=-1 oder Typ=0. Ich glaube, Dein
Anwendungsfall wird von keiner der Optionen erfasst.

Gruß

Stefan

Hallo,

Stefan Weigel schrieb:

Aber nur, wenn die Werte in der Suchmatrix aufsteigend sortiert
sind. So ist es definiert. Ein paar Einsen und dazwischen einige
leere Zellen, erfüllen diese Voraussetzung nicht.

ah ja. Dummerweise funktioniert es auch nicht, wenn die Zellen mit ""
gefüllt werden.

Schau mal in der Online-Hilfe nach den möglichen Variationen für das
dritte Argument Typ=1 oder Typ=-1 oder Typ=0. Ich glaube, Dein
Anwendungsfall wird von keiner der Optionen erfasst.

OK., das hatte ich dann wohl falsch interpretiert.

Wie kann ich dann das letzte Vorkommen einer errechneten 1 in einer
Spalte finden?

Ich würde in einer Hilfsspalte neben die Einser-Spalte die folgende
Formel runterziehen (in deinem Beispiel jetzt halt bis Zeile 31):

=WENN(B1:B31=1;ZEILE(B1);0)

Wenn du dann in irgendeiner anderen Zelle die Formel

=MAX(C1:C31)

reinschreibst, wird dort die höchste Einser-Zeile angezeigt.

.... und tschüss

            Franklin

Hallo Boris,
eine Möglichkeit ist mit einer Hilfsspalte (z.B. D):
In D1 die Formel '=wenn(a1 = 1;zeile();"")' eingeben, nach unten kopieren und anschließend den größten Wert in Spalte D suchen
Ralf

Ich würde in einer Hilfsspalte C neben die Einser-Spalte B die
folgende Formel runterziehen (ich hab hier halt in Zeile 1 begonnen):

=WENN(B1=1;ZEILE(B1);0)

Wenn du dann in irgendeiner anderen Zelle die Formel

=MAX(C1:C31)

reinschreibst, wird dort die höchste Einser-Zeile angezeigt.

.... und tschüss

            Franklin

Hallo Boris,

Boris Kirkorowicz schrieb:

Hallo,
ich habe mit mit der Funktion VERGLEICH() beschäftigt und dabei
festgestellt, dass es unterschiedliche Ergebnisse liefert in
Abhängigkeit davon, ob der Input aus manuell eingegebenen Werten oder
aus Formelberechnungen stammt.

Hier zur Verdeutlichung, was ich meine:
In Spalte A soll nach dem Wert "1" (als Zahl) gesucht werden. Die Formel
dazu in B5 und C5 (und darunter gefüllt) lautet:
=VERGLEICH(1;A$1:A5;1)
=VERGLEICH(1;A$1:A6;1)

Warum VERGLEICH nicht geht, hat dir Stefan ja schon geschrieben. Hier meine Alternative:
In B1 eintragen =WENN(A1=1;1;0)
In B2 die Formel =MAX(WENN(A2=1;ZEILE();0);B1)
Dann durch Ziehen nach unten kopieren.

Der Index der letzten 1 wird solange aus der vorigen B-Zelle übernommen, bis in der aktuellen Zeile in A eine 1 steht. Dann wird diese aktuelle Zeilennummer genommen, weil sie ja größer ist als der alte Index.

MfG
Regina