Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

5 Zellen auf eine Zahlenkette hin überprüfen?

5 Zellen auf eine Zahlenkette hin überprüfen?
13.04.2005 13:19:40
Oliver
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

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 5 Zellen auf eine Zahlenkette hin überprüfen?
13.04.2005 13:55:08
Boris
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
AW: 5 Zellen auf eine Zahlenkette hin überprüfen?
13.04.2005 13:55:42
serge
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
Anzeige
AW: 5 Zellen auf eine Zahlenkette hin überprüfen?
13.04.2005 13:55:50
Galenzo
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!
AW: 5 Zellen auf eine Zahlenkette hin überprüfen?
13.04.2005 13:58:50
Galenzo
ach das ist doch Mist... geht so nicht - irgendwie passt das noch nicht.
Reihe: 5,9,5,5,5 .....;-) oT
13.04.2005 13:59:25
Boris
AW: Reihe: 5,9,5,5,5 .....;-) oT
13.04.2005 14:07:25
Galenzo
so, nach DER Blamage leg' ich nun nochmal nach:
{=KORREL(KKLEINSTE(A13:E13;ZEILE(1:5));{1;2;3;4;5})}
besser?
Reihe: 1,3,5,7,9 ...;-) oT
13.04.2005 14:13:26
Boris
AW: Reihe: 1,3,5,7,9 ...;-P
13.04.2005 14:20:06
Galenzo
och maaan, bist du ein Spielverderber :-)
hmm.. bastle ich mal weiter - deine formel ist mir jedenfalls zu laaang!
Anzeige
@Boris: Gegenbeispiel
13.04.2005 14:30:01
Galenzo
{=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
Wozu denn dann noch KORREL?
13.04.2005 14:41:02
Boris
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
Natürlich noch auf 2,5 überprüfen...
13.04.2005 14:45:37
Boris
=VARIANZ(KKLEINSTE(A10:E10;{1.2.3.4.5}))=2,5
Ich hab noch keinen Haken gefunden...;-)
Grüße Boris
AW: Natürlich noch auf 2,5 überprüfen...
13.04.2005 14:54:09
Galenzo
jipp - bin ich auch grade drauf gekommen, daß allein die Varianz ausreicht! Prima!
Viel Erfolg!
selbst KKLEINSTE kann man weglassen
13.04.2005 14:59:47
Galenzo
oT
Und KKLEINSTE ist doch auch überflüssig...
13.04.2005 14:53:53
Boris
Hi Galenzo,
damit wird jetzt ein Knallfrosch draus:
=VARIANZ(A10:E10)=2,5
;-)
Grüße Boris
Anzeige
AW: Und KKLEINSTE ist doch auch überflüssig...
13.04.2005 15:01:21
Galenzo
ja, auch grad gefunden..
aber wie testet man nun auf eine 4er-Reihe?
Danke, allerdings benötige ich das ganze in VBA!
13.04.2005 14:32:53
Oliver
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
Anzeige
VBA? Kein Problem...
13.04.2005 14:49:04
Boris
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
Und wie sieht die Lösung bei 4 Zahlen in Reihe aus
13.04.2005 14:59:52
Oliver
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
Lösung für 4 Zahlen
13.04.2005 16:00:03
Boris
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
Anzeige
{2.3.3.4.5} funzt nicht ;-)
13.04.2005 16:13:16
IngoG
Hallo Boris,
wenn in der reihe mittig doppelte werte vorkommen ists problematisch
(wenn ich das prob richtig verstanden habe...)
Gruß Ingo
Ja - hast Recht...oT
13.04.2005 16:25:32
Boris
AW: Ja - hast Recht...oT
13.04.2005 16:58:57
Oliver
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
Anzeige
simpellösung
13.04.2005 17:41:10
IngoG
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)&gt0
Bekomme es nicht in VBA hin!
13.04.2005 18:08:01
Oliver
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
vielleicht so?
14.04.2005 09:33:13
IngoG
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

Anzeige
Super Lösung!
14.04.2005 10:23:33
Oliver
Moin Ingo,
grandios, das ist es. Danke Dir für Deine neuerliche Hilfe.
Gruß,
Oliver
Danke für die Rückmeldung oT
14.04.2005 10:42:47
IngoG
.
Matrixformel()
13.04.2005 14:40:09
IngoG
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
VBA-Function
13.04.2005 15:22:48
ingoG
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

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige