Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
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
Inhaltsverzeichnis

Ranges vergleichen

Ranges vergleichen
08.03.2020 10:55:18
Helmut
Hi Experten,
ich komme an einer Stelle nicht weiter. Ich will in Spalte C die Zeilennummer ausgeben, bei der sich der Range ab Zelle C2 wiederholt. Zur Anschauung habe ich per Hand eingefärbt. Ab Zeile 22 wiederholt sich der Range C2:C21, es ist also eine 20-er Periode. Wie kann ich mit VBA die Zeilennummer 22 (Beginn der neuen Periode) ausgeben?
Danke im Voraus
helmut.em
siehe: https://www.herber.de/bbs/user/135691.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ranges vergleichen
08.03.2020 11:00:34
Hajo_Zi
Hallo Helmut,
das verstehe ich nicht.
Du willst In Spalte C eine Formel Die die Wiederholung in Spalte C prüft?

AW: Ranges vergleichen
08.03.2020 12:39:23
Helmut
Vllt. habe ich mich nicht deutlich genug ausgedrückt:
Wenn man die Werte in Spalte C verfolgt, sieht man, dass sich die Folge ab Zeile 22 wiederholt (blauer Block = gelber Block).
Ich brauche die Zeilennummer, bei der die Wiederholung beginnt - nicht nur für diese 20-er Periode sondern allgemein.
Wie stellt man fest, dass ab einer bestimmten Zeilennummer die danach kommenden Werte dieselben sind wie die Werte vorher (im Beispiel C2:C21 identisch mit C22:C41)?
Der erste Zahlenblock beginnt immer in Zeile 2.
Ist das verständlich? Kann jemand helfen?
Gruß helmut.em
Anzeige
AW: Ranges vergleichen
08.03.2020 13:15:14
Sulprobil
Hallo Helmut,
m. E. hast Du Dich gut ausgedrückt.
Nur zur Klarstellung: Du suchst nach der Startzeilennummer der ersten Wiederholung der längsten vorkommenden Periode?
Beispiel:
1
1
2
1
1
2
3
1
1
2
1
1
2
3
soll nicht 2 oder 4 ergeben, sondern 8, richtig?
Viele Grüße,
Bernd P
AW: Ranges vergleichen
08.03.2020 14:02:24
Helmut
Hallo Bernd,
es ist genau so, wie du es aufgefasst hast. In deinem Beispiel ist die Startzeile die 8 für deine 7er Periode, in meinem ist es die 22 für meine 20er Periode (nicht die 21, weil ich in Zeile 1 Überschriften habe).
Wenn du eine Lösung für dein Beispiel hättest, würde ich es an meine Verhältnisse anpassen. Wie bereits gesagt: Die Periodenlänge ist variabel, sonst bräuchte ich ja kein VBA. Die Periode beginnt aber immer in C2.
Danke erst mal bis hierher
helmut.em
PS. Ich habe bisher den Code für das Bildungsgesetz der Folge in Spalte B geschrieben und danach Modulo 10 für die Spalte C programmiert (wahrscheinlich gab es das auch schon fertig).
Anzeige
AW: Ranges vergleichen
08.03.2020 18:36:55
Sulprobil
Hallo Helmut,
das wird etwas schwierig, fürchte ich, wenn Deine periodischen Daten sich in Spalte C mehrfach wiederholen.
Jede automatische Lösung benötigt eine Zusatzinfo, wo diese Perdioden enden, weil sonst als längste Periode nicht die erste erkannt wird, sondern die erste und zweite zusammen (wenn mindestens 4 Wiederholungen existieren), oder die 1.-3. zusammen (wenn 6 Wiederholungen bestehen), etc.
Ich kann in den Spalten A und B keine Zusatzinfo sehen, die mir solch ein Ende gibt. Wenn Du aber die erste Perdiode IMMER farblich hervorgehoben hast, könnte ich dies verwenden.
Was meinst Du?
Viele Grüße,
Bernd P
Anzeige
AW: Ranges vergleichen
09.03.2020 08:59:35
Helmut
Hallo Bernd,
danke, dass du dich am Sonntag mit meinem Problem beschäftigst.
Die farbigen Hervorhebungen sind händisch von mir für das bessere Verständnis, weil ich ja die Periode kenne.
Ich hatte versucht, 2 Ranges miteinander zu vergleichen und zeige mit dem folgenden Hilfs-Makro, wie ich die Range-Grenzen ermittele (dargestellt in E und F). Das Makro bitte in kind.xls einbauen und die Spalten E und F als "Text" formatieren:

Sub Makro1()
Dim p As Integer
Dim q As Integer
Dim a As Integer
p = 2
q = 2
a = 0
Do
Cells(2 + a, 5) = 1 & "/" & p
Cells(2 + a, 6) = p + 1 & "/" & 2 * q
p = p + 1
q = q + 1
a = a + 1
If p = 50 Then End
Loop
End Sub
Der erste Range beginnt immer in Zeile 2 und der zweite beginnt jeweils nach dem Ende des ersten. Ich will also beginnend mit der ersten sinnvollen (nämlich 2er) Periode alle weiteren miteinander vergleichen. Sobald Identität der beiden Ranges festgestellt wird, soll die Schleife abbrechen und die Startzeile des zweiten Ranges ausgeben. Da hat es bei mit ausgesetzt.
Vielleicht hilft dir das für weitere Überlegungen.
Gruß und eine schöne Woche
Helmut
Anzeige
AW: ohne VBA ...
09.03.2020 14:11:33
neopa
Hallo Reiner,
... könnte die Zeilennummer des Beginns der nächsten Periode in wohl den meisten Fällen wie folgt ermittelt werden:
=VERGLEICH(C2&C3&C4;INDEX(C5:C97&C6:C98&C7:C99;);0)+ZEILE(C5)-ZEILE(C1)
Die Überprüfung dessen könnte ja evtl. mit einer Formel mit Verknüpfung von 4 anstelle nur 3 Zellenwerten vorgenommen werden.
In Deinem Beispiel liefert übrigens auch schon:
=VERGLEICH(C2&C3;INDEX(C5:C97&C6:C98;);0)+ZEILE(C5)-ZEILE(C1)
die gesuchte Zeilennummer 22.
Gruß Werner
.. , - ...
AW: ohne VBA ...
09.03.2020 18:49:54
Helmut
Ich habe eine Lösung ohne VBA nicht für möglich gehalten und bin begeistert.
Ich danke Werner und allen, die sich für mich bemüht haben und betrachte mein Problem für gelöst.
Gruß Helmut
Anzeige
AW: freut mich, bitteschön owT
11.03.2020 08:33:31
neopa
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige