Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ursprüngliche Zahlen finden?
#81
(25.03.2016, 15:47)snb schrieb:
(25.03.2016, 15:34)atilla schrieb: Hallo, snb,

und was bekomme ich für Ergebnisse raus???

Das erfährst Du wenn Du den Code aus Beitrag #70, wie dort beschrieben ausführst.
Das sind die gleichen Ergebnisse, wie schauan.

Im gleichen Beitrag habe ich auch versucht zu erklären, wie was gezählt wird.

Pfffff,

Ich habe die Erklärung gelesen.
Aber dennoch bleibt die Frage im Beispiel Zeille 23 welche Zahlen gezählt werden.

hallo snb,

welche Zahlen?
Die 13,14 aus Zeile 12
Die 26 aus Zeile 13
Die 24,44 aus Zeile 15
Die 35 aus Zeile 16
Die 30 aus Zeile 17
Die 2 aus Zeile 18
Die 19 aus Zeile 20
Die 4,10,32 aus Zeile 21
Die 15,39 aus Zeile 22

Sind 14 offene Zahlen - die nicht gelb oder grau sind.

Zu deinem VBCode aus Heute, 13:46
Verstehe ich nicht ganz - was soll ich damit machen?

LG
Angelina
Antworten Top
#82
Hallo Angelina,

nach dieser Zeile:


Code:
Cells(arr(pp) + 1, 14) = Replace(Join(Split(strgSammlung, "#"), ", "), ", ", "", 1, 1)



folgende Zeilen einfügen:


Code:
     For n = 1 To UBound(Split(strgSammlung, "#"))
       If IsNumeric(Application.Match(CDbl(Split(strgSammlung, "#")(n)), Range(Cells(arr(pp) + 1, 4), Cells(arr(pp) + 1, 9)), 0)) Then
         lngP = InStr(1, Cells(arr(pp) + 1, 14), Format(Split(strgSammlung, "#")(n), "00"), vbTextCompare)
         Cells(arr(pp) + 1, 14).Characters(Start:=lngP, Length:=2).Font.Color = -16776961
       End If
     Next n
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Angelina
Antworten Top
#83
hallo atilla,

:100:

supi ... genau so :18: 


Ich habe im Dim Bereich noch die Variablen definiert - da hat es gestopt

Sub zählen1()

  Dim i As Long, j As Long, n As Long, lngP As Long, pp As Long

Denke das war richig so!

Nun kann ich optisch - wenn auch nicht zählbar - sehen wo die meisten Treffer liegen.
Also - ist es eher die erste Zahl in N oder die zweite oder dritte oder ...

Danke Danke !!!

LG
Angelina
Antworten Top
#84
Hallo Angelina,

gut und richtig gemacht!

Wenn Du magst, kannst Du diese Zeile:


Code:
         lngP = InStr(1, Cells(arr(pp) + 1, 14), Format(Split(strgSammlung, "#")(n), "00"), vbTextCompare)


mit folgender ersetzen:


Code:
         lngP = n * 3 + n - 3
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Angelina
Antworten Top
#85
hallo atilla,

ok wurde gemacht !

Danke

LG
Angelina
Antworten Top
#86
Hallo snb,

wenn Du die Erklärung aus
http://www.clever-excel-forum.de/Thread-...8#pid37608
und mein dort anhängendes Beispiel nimmst, hast Du im Code eine Konstante, mit der Du eine Debug-Ausgabe steuern kannst. Das hilft hoffentlich auch zum Verständnis.
'Konstante fuer Debug-Kontrolle
Const debCnt As Integer = 29

Nimm dort statt der 29 die 23 und schaue ins Direktfenster. Es werden alle betrachteten Zahlen ausgegeben einschl. weiterer Angaben usw., siehe dazu auf der verlinkten Seite etwas weiter oben der Beitrag #63. In der Mappe sind zu den offenen jetzt auch weitere Informationen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#87
Halllo Andre,

ich vermute, dass Du meinen zuletzt eingestellten Code nicht getestet hast.
Angelina schrieb, dass ständig neue Zeilen hinzu kommen würden. In der eingestellten Mappe waren es knapp 200 Zeilen.
Bei dieser kleinen Anzahl braucht Deine Variante schon sehr lang. Wenn Du meinen Code kurz überfliegst, dann siehst Du auch, dass es nicht so kompliziert zu zählen ist.

Obwohl ich, da Angelina es so haben wollte, so viele Informationen in die Tabelle schreibe und noch Färbungen vornehme, bin ich schon fertig, bevor Du die erste Zahl gefunden hast.

@snb,

in der Beispielmappe habe ich noch einmal versucht zu Erklären, was passieren soll.

Was die Geschwindigkeit eines möglichen Codes betrifft: Etwas schneller kann man es machen, aber nicht wesentlich, denke ich.
Es werde Farben ausgelesen und Zellen gefärbt. Also muss man einige male auf Range zugreifen.
Kannst mich aber gerne eines Besseren belehren.



.xlsb   SuchZahlen-Schritt2-21-03-2016(ati-Info).xlsb (Größe: 90,07 KB / Downloads: 6)
Gruß Atilla
Antworten Top
#88
Hallo Atilla,

nein, Deinen Code hab ich noch nicht getestet. Ich schaue zwar immer mal drüber, aber die Gedanken waren bei meinem, um erst mal diesen Weg fehlerfrei zu gestalten. Mein Code läuft unter anderem deswegen lange, weil ich hier von meinem Prinzip der Minimierung der Zellzugriffe abgewichen bin. Am Anfang sah es ja nicht so viel aus mit den paar Zeilen ... Dann kommt noch dazu, dass ich vom Ende her jede Zeile prüfe, ob 3 farbliche Markierungen enthalten sind. Ich prüfe also auch gut 480 Nullen Smile Falls in diesen Zeilen, was sehr wahrscheinlich ist, keine farblichen Markierungen enthalten sind, könnte man meine aufgestellten Regeln noch entsprechend erweitern:
Prüfe vom Ende der Daten her bis zur ersten gefundenen Zeile mit 3 Markierungen im Bereich D:I keine Zeilen, deren Summe 0 ist.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#89
Hallo Atilla,

was hast Du denn für einen Rechner?
Ich hab jetzt mal die Zeit mit der Api in mehreren Versuchen gemessen, ohne die Nullen 1,297 Sekunden, Schwankung ca- +0,2, mit Nullen 1,578, Schwankung ca. -0,2. System: i5, 8GB RAM, W10-64, Off2016-32
Da ist "sehr lange" doch noch etwas entfernt? Vielleicht nicht in der Formel 1, aber bei uns Exceljanern Smile Aber ich schaue trotzdem noch nach den Zellzugriffen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#90
(25.03.2016, 19:09)atilla schrieb: Hallo Angelina,

gut und richtig gemacht!

Wenn Du magst, kannst Du diese Zeile:


Code:
         lngP = InStr(1, Cells(arr(pp) + 1, 14), Format(Split(strgSammlung, "#")(n), "00"), vbTextCompare)


mit folgender ersetzen:


Code:
         lngP = n * 3 + n - 3




hallo atilla,

ich habe mal eine Frage bezüglich der Spalte N die du für mich eingerichtet hast.

Es werden da ja die Zahlen rot markiert, die in dem Bereich D:I identisch/übereinstimment sind.

Wie kann ich z.B. als Msgbox die Häufigkeit als Positionzahl ausgeben?

Die Häufigkeitsermittlung stelle ich mir so vor:
Nicht wie üblich - welche Zahl ist wie oft vorhanden, sondern so:
Ich weiß nicht wie man diese Rechenmethode nennt!

Was ist für mich eine Positionszahl in der Spalte N?
Die Zahlen sind dort durch Komma getrennt
Die erste Zahl von links ist die Positionszahl 1
Die zweite Zahl von links ist die Positionszahl 2
Die dritte Zahl von links ist die Positionszahl 3 usw. usw.

Jedoch nur die roten (mit roter Schriftfarbe ... dein VBACode) markierten.

Beispiel:
1,2,3,4,5,12,13,14,20
1,4,7,12,13,14,15,16,20
11,12,13,14,15,16,17,18,20

3 = Positionszahl 3
12 = Positionszahl 6
20 = Positionszahl 9
----------------------------
12 = Positionszahl 4
20 = Positionszahl 9
----------------------------
11 = Positionszahl 1
14 = Positionszahl 4
20 = Positionszahl 9

Ausgabe: Msgbox
Posi 1 = 1 x
Posi 3 = 1 x
Posi 4 = 2 x
Posi 6 = 1 x
Posi 9 = 3 x


Das ist für mich eine Möglichkeit die Grundhäufigkeit zu ermitteln.

Das reicht aber im Normalfall nicht aus, da wir hierdurch nur ... wie gesagt eine Grundhäufigkeit ermittlen können.

Jetzt kommt das, was ich nicht benennen kann - mathematischer Ausdruck:

Wenn man als Beispiel die o.g. Msgbox als Ausgabe hätte
Ausgabe: Msgbox
Posi 1 = 1 x
Posi 3 = 1 x
Posi 4 = 2 x
Posi 6 = 1 x
Posi 9 = 3 x

Und nun nach dieser 1.Msgbox
eine zweite 2.[i]Msgbox [/i]ausgeben würde die jedoch so zählt:
Wenn der am häufigsten vorkommende Posiwert ... hier die "Posi 9 = 3 x"
mit seinen ganzen Zeilen aus denen er gebildet wurde:
1,2,3,4,5,12,13,14,20
1,4,7,12,13,14,15,16,20
11,12,13,14,15,16,17,18,20
nicht vorhanden gewesen wäre ... was wäre dann der nächsthöhere Posi Wert ???

usw.
wenn auch dieser nicht vorhanden gewesen wäre ... was wäre dann der nächsthöhere Posi Wert ???
usw.
wenn auch dieser nicht vorhanden gewesen wäre ... was wäre dann der nächsthöhere Posi Wert ???

Wie nennt man diese Art ?
Ist das überhaupt machbar ?

Vielleicht hat ja auch jemand anderes eine Idee ... hierzu.

LG
Angelina


Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste