5 Zellen auf eine Zahlenkette hin überprüfen?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: 5 Zellen auf eine Zahlenkette hin überprüfen? von: Oliver S.
Geschrieben am: 13.04.2005 13:19:40

Hallo an alle Freunde des Excel!

ich hänge mal wieder schon beim Ansatz eines Lösungsweges. Ich habe in den Zelle A10:E10 Zahlen von 1 bis 10 zu stehen. Nun möchte ich erreichen, dass überprüft wird, ob die Zahlen, die dort stehen eine lückenlose Zahlenkette aufweisen und mir dann in Zelle B2 ein X geschrieben wird. Als Beispiel:

A10: 4
B10: 5
C10: 6
D10: 7
E10: 8

Obiges Beispiel wäre eine Zahlenkette, die in Ordnung wäre. Allerdings kann es auch vorkommen, dass die Zahlen nicht in einer aufsteigenden Reihe in den Zellen stehen, sondern durcheinander. Als Beispiel:

A10: 7
B10: 4
C10: 5
D10: 8
E10: 6

Auch diese Reihenfolge wäre OK, da die Zahlen theoretisch eine aufsteigende Zahlenkette ergeben (4, 5, 6, 7 und 8), auch wenn sie durcheinander stehen.

Dann benötigte ich noch, dass wenn die Zahlenkette nicht lückenlos ist, also nicht alle 5 Zahlen eine Zahlenkette ergeben, sondern nur 4 Zahlen eine Zahlenkette ergeben würden, dass in Zelle B2 ein "a" ausgegeben wird. Als Beispiel:

A10: 4
B10: 5
C10: 6
D10: 7
E10: 5

oder auch

A10: 7
B10: 4
C10: 5
D10: 7
E10: 6

Beide Varianten würden theoretisch eine Zahlenkette ergeben nämlich 4, 5, 6, und 7. Bekommt man so etwas hin oder gibt es dafür keine Lösung.

Ach ja, das ganze möchte ich gerne als Makro realisieren.

Danke schon mal für Euere Lösungsvorschläge,
Oliver

Bild


Betrifft: AW: 5 Zellen auf eine Zahlenkette hin überprüfen? von: Boris
Geschrieben am: 13.04.2005 13:55:08

Hi Oliver,

auf die Schnelle:

=ODER(ANZAHL(VERGLEICH({1.2.3.4.5};A10:E10;))=5;ANZAHL(VERGLEICH({2.3.4.5.6};A10:E10;))=5;ANZAHL(VERGLEICH({3.4.5.6.7};A10:E10;))=5;ANZAHL(VERGLEICH({4.5.6.7.8};A10:E10;))=5;ANZAHL(VERGLEICH({5.6.7.8.9};A10:E10;))=5;ANZAHL(VERGLEICH({6.7.8.9.10};A10:E10;))=5)

Liefert WAHR oder FALSCH - WAHR, wenn die Zahlenkette aus 5 aufeinanderfolgenden Ziffern besteht (in x-beliebiger Reihenfolge).

Grüße Boris


Bild


Betrifft: AW: 5 Zellen auf eine Zahlenkette hin überprüfen? von: serge
Geschrieben am: 13.04.2005 13:55:42

Hi Olivier
ich habe es so gelöst:
=WENN(UND(WENN(KGRÖSSTE($A$10:$E$10;4)=KKLEINSTE($A$10:$E$10;1)+1;"C";0)="C";WENN(KGRÖSSTE($A$10:$E$10;3)=KGRÖSSTE($A$10:$E$10;4)+1;"C";0)="C";WENN(KGRÖSSTE($A$10:$E$10;2)=KGRÖSSTE($A$10:$E$10;3)+1;"C";0)="C";WENN(KGRÖSSTE($A$10:$E$10;1)=KGRÖSSTE($A$10:$E$10;2)+1;"C";0)="C");"X";0)
Es gibt sicher andere und einfachere Lösung aber es funktioniert!
Serge


Bild


Betrifft: AW: 5 Zellen auf eine Zahlenkette hin überprüfen? von: Galenzo
Geschrieben am: 13.04.2005 13:55:50

nix Makro, Formel:
Formel in F10:
=WENN(MIN(A10:E10)+4=MAX(A10:E10);"Reihe";"nö")

kannst du aber auch als Bedingung in ein Makro einbauen:

Lösungsansatz: Bei einer Reihe ist die Differenz zwischen Minimum und Maximum gleich der Anzahl der Elemente minus 1.

(über Teil 2 deiner Frage denke ich noch nach)

Viel Erfolg!


Bild


Betrifft: AW: 5 Zellen auf eine Zahlenkette hin überprüfen? von: Galenzo
Geschrieben am: 13.04.2005 13:58:50

ach das ist doch Mist... geht so nicht - irgendwie passt das noch nicht.


Bild


Betrifft: Reihe: 5,9,5,5,5 .....;-) oT von: Boris
Geschrieben am: 13.04.2005 13:59:25




Bild


Betrifft: AW: Reihe: 5,9,5,5,5 .....;-) oT von: Galenzo
Geschrieben am: 13.04.2005 14:07:25

so, nach DER Blamage leg' ich nun nochmal nach:

{=KORREL(KKLEINSTE(A13:E13;ZEILE(1:5));{1;2;3;4;5})}

besser?


Bild


Betrifft: Reihe: 1,3,5,7,9 ...;-) oT von: Boris
Geschrieben am: 13.04.2005 14:13:26




Bild


Betrifft: AW: Reihe: 1,3,5,7,9 ...;-P von: Galenzo
Geschrieben am: 13.04.2005 14:20:06

och maaan, bist du ein Spielverderber :-)
hmm.. bastle ich mal weiter - deine formel ist mir jedenfalls zu laaang!


Bild


Betrifft: @Boris: Gegenbeispiel von: Galenzo
Geschrieben am: 13.04.2005 14:30:01

{=VARIANZ(KKLEINSTE(A10:E10;ZEILE(1:5)))*KORREL(KKLEINSTE(A10:E10;ZEILE(1:5));
{1;2;3;4;5})=2,5}

OK - meine Formel wird nun doch auch immer länger..
Dann warte ich mal auf dein Gegenbeispiel


Bild


Betrifft: Wozu denn dann noch KORREL? von: Boris
Geschrieben am: 13.04.2005 14:41:02

Hi Galenzo,

=VARIANZ(KKLEINSTE(A10:E10;{1.2.3.4.5}))

sollte doch reichen - und ist eine super Lösung von Dir!

Grüße Boris


Bild


Betrifft: Natürlich noch auf 2,5 überprüfen... von: Boris
Geschrieben am: 13.04.2005 14:45:37

=VARIANZ(KKLEINSTE(A10:E10;{1.2.3.4.5}))=2,5

Ich hab noch keinen Haken gefunden...;-)

Grüße Boris


Bild


Betrifft: AW: Natürlich noch auf 2,5 überprüfen... von: Galenzo
Geschrieben am: 13.04.2005 14:54:09

jipp - bin ich auch grade drauf gekommen, daß allein die Varianz ausreicht! Prima!

Viel Erfolg!


Bild


Betrifft: selbst KKLEINSTE kann man weglassen von: Galenzo
Geschrieben am: 13.04.2005 14:59:47

oT


Bild


Betrifft: Und KKLEINSTE ist doch auch überflüssig... von: Boris
Geschrieben am: 13.04.2005 14:53:53

Hi Galenzo,

damit wird jetzt ein Knallfrosch draus:

=VARIANZ(A10:E10)=2,5

;-)

Grüße Boris


Bild


Betrifft: AW: Und KKLEINSTE ist doch auch überflüssig... von: Galenzo
Geschrieben am: 13.04.2005 15:01:21

ja, auch grad gefunden..
aber wie testet man nun auf eine 4er-Reihe??


Bild


Betrifft: Danke, allerdings benötige ich das ganze in VBA! von: Oliver S.
Geschrieben am: 13.04.2005 14:32:53

Hallo an alle,

ich habe nun die ganzen Formeln mal durchprobiert und sie funktionieren alle. Nur leider nützen diese mir leider nicht so wahnsinnig viel, da ich leider eine VBA Lösung benötige und ich ehrlich gesagt nicht weiß, wie ich die Formeln in VBA umsetzen soll. Hat eventuell noch jemand eine VBA Lösung, die er mal eben so aus dem Hemdsärmel schütteln kann und die auch den zweiten Teil meiner Frage, also wenn nur 4 Zahlen eine Reihe ergeben, mit beinhaltet? ;-)

Danke Euch jedenfalls für Eure Mühe.

Gruß,
Oliver


Bild


Betrifft: VBA? Kein Problem... von: Boris
Geschrieben am: 13.04.2005 14:49:04

Hi Oliver,

die letzte Lösung von Galenzo:


Sub zahlenreihe()
MsgBox [VAR(SMALL(A10:E10,{1,2,3,4,5}))=2.5]
End Sub


Grüße Boris


Bild


Betrifft: Und wie sieht die Lösung bei 4 Zahlen in Reihe aus von: Oliver S.
Geschrieben am: 13.04.2005 14:59:52

Hi Boris,

das ist schon mal super. Danke Dir dafür. Hast Du eventuell auch noch so eine tolle Lösung für den zweiten Teil in meiner Frage, also wenn in den Zellen A10:E10 nicht alle 5, sondern nur 4 eine Reihe ergeben? Das wäre klasse.

Danke noch mal an Dich und alle anderen, die hier eine Lösung gepostet haben.

Gruß,
Oliver


Bild


Betrifft: Lösung für 4 Zahlen von: Boris
Geschrieben am: 13.04.2005 16:00:03

Hi Oliver,

=ODER(VARIANZ(KKLEINSTE(A10:E10;{2.3.4.5}))=1+2/3;VARIANZ(KGRÖSSTE(A10:E10;{2.3.4.5}))=1+2/3)

Grüße Boris


Bild


Betrifft: {2.3.3.4.5} funzt nicht ;-) von: IngoG
Geschrieben am: 13.04.2005 16:13:16

Hallo Boris,
wenn in der reihe mittig doppelte werte vorkommen ists problematisch
(wenn ich das prob richtig verstanden habe...)

Gruß Ingo


Bild


Betrifft: Ja - hast Recht...oT von: Boris
Geschrieben am: 13.04.2005 16:25:32




Bild


Betrifft: AW: Ja - hast Recht...oT von: Oliver S.
Geschrieben am: 13.04.2005 16:58:57

Hallo an alle,

danke für die erneuten Lösungsversuche. Aber es ist so wie Ingo es bereits erwähnt hat. Wenn in der Mitte eine Zahl doppelt vorkommt, funktioniert es nicht. Da es aber vorkommen kann, dass eine Zahl doppelt vorkommen kann, ist die Lösung leider noch nicht so ganz richtig. Ich hoffe aber, dass doch noch jemand für die 4 Zahlenvariante einen Lösungsansatz hat.

Danke Euch noch mal für die rege Teilname an meiner Frage.

Gruß,
Oliver


Bild


Betrifft: simpellösung von: IngoG
Geschrieben am: 13.04.2005 17:41:10

Hallo Oliver,

aus Boris' Lösung hab ich einfach mal eine Variante abgewandelt die funzen dürfte...

Gruß Ingo


=(VARIANZ(A10;B10;C10;E10)=5/3)+(VARIANZ(A10;B10;C10;D10)=5/3)+(VARIANZ(A10;B10;D10;E10)=5/3)+(VARIANZ(A10;D10;C10;E10)=5/3)+(VARIANZ(D10;B10;C10;E10)=5/3)>0


Bild


Betrifft: Bekomme es nicht in VBA hin! von: Oliver S.
Geschrieben am: 13.04.2005 18:08:01

Hallo,

danke Dir für die super Formel Ingo. Funktioniert tadellos. Aber irgendwie stelle ich mich zu dumm an, diese in VBA umzusetzen. Kannst Du mir dabei noch mal behilflich sein? Ich hoffe doch.

Schöne Grüße,
Oliver


Bild


Betrifft: vielleicht so? von: IngoG
Geschrieben am: 14.04.2005 09:33:13

Hallo Oliver,
versuchs mal so:
Gruß Ingo


Sub aaaa()
Dim reihe As Boolean
reihe = False
reihe = (WorksheetFunction.Var(Range("A10"), Range("B10"), Range("C10"), Range("D10")) = 5 / 3) Or _
        (WorksheetFunction.Var(Range("A10"), Range("B10"), Range("C10"), Range("E10")) = 5 / 3) Or _
        (WorksheetFunction.Var(Range("A10"), Range("B10"), Range("E10"), Range("D10")) = 5 / 3) Or _
        (WorksheetFunction.Var(Range("A10"), Range("E10"), Range("C10"), Range("D10")) = 5 / 3) Or _
        (WorksheetFunction.Var(Range("E10"), Range("B10"), Range("C10"), Range("D10")) = 5 / 3)
MsgBox reihe
End Sub



Bild


Betrifft: Super Lösung! von: Oliver S.
Geschrieben am: 14.04.2005 10:23:33

Moin Ingo,

grandios, das ist es. Danke Dir für Deine neuerliche Hilfe.

Gruß,
Oliver


Bild


Betrifft: Danke für die Rückmeldung oT von: IngoG
Geschrieben am: 14.04.2005 10:42:47

.


Bild


Betrifft: Matrixformel() von: IngoG
Geschrieben am: 13.04.2005 14:40:09

Hallo zusammen,

folgende Matrixformel gibt 1 zurück, wenn im bereich a10:h10 nur aufeinanderfolgende Werte liegen (fehlende Werte dürfen nur rechts liegen...)
ansonsten wird 0 zurückgegeben

=PRODUKT(WENN($A$10:$J$10="";1;((MIN($A$10:$J$10)+SPALTE(A:J)-1)=KKLEINSTE($A$10:$J$10;SPALTE(A:J))))*1)

Gruß Ingo


Bild


Betrifft: VBA-Function von: ingoG
Geschrieben am: 13.04.2005 15:22:48

Hallo zusammen,
oder so:

einfach in b2 eingeben=reihe(a10:j10)
gibt wahr oder falsch zurück, leere zellen werden nicht berücksichtigt...

Gruß Ingo


Function reihe(bereich As Range) As Boolean
Dim i%
Application.Volatile
reihe = True
For i = 1 To WorksheetFunction.Count(bereich)
    If WorksheetFunction.Max(bereich) - i + 1 <> WorksheetFunction.Large(bereich, i) Then reihe = False
Next i
End Function



 Bild

Beiträge aus den Excel-Beispielen zum Thema "5 Zellen auf eine Zahlenkette hin überprüfen?"