Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
252to256
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
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Countfunktion

Countfunktion
08.05.2003 20:01:14
Dari
Ich glaube ich komme der Lösung langsam, aber sicher näher: Habe jetzt 2 Programme für folgendes Problem:
Die Datenreihe soll gezählt werden:
R101_1
R101_1
R101_1
R101_2
R101_2
R101_2
R101_3
R101_4
R101_1
R101_1
R101_2
R101_3
R101_4

Es handelt sich hierbei um 2 unterschiedliche Blöcke. Immer vom ersten _1 bis zum letzten _4 ist ein Block. Mein Zählmakro müsste aufgrund oberer Datenreihe folgendes ermitteln:
Block 1 (Anzahl Elemente) : 8
Block 2 (Anzahl Elemente) : 5

Sowohl Makro A:
Option Explicit
Option Base 1
Public Sub zaehlen()
Dim Zeile As Long, Feld() As Integer, Anzahl As Integer, zaehler As Integer
For Zeile = 1 To Range("A65536").End(xlUp).Row
If Mid(Cells(Zeile, 1).Value, 5) = 4 And Mid(Cells(Zeile + 1, 1).Value, 5) _
= 1 Or Zeile = Range("A65536").End(xlUp).Row Then
If Anzahl <> 0 Then
zaehler = zaehler + 1
ReDim Preserve Feld(zaehler)
Feld(zaehler) = Anzahl + 1
Anzahl = 0
Else
Anzahl = Anzahl + 1
End If
Else
Anzahl = Anzahl + 1
End If
Next
For Zeile = 1 To zaehler
Cells(Zeile, 2).Value = "Block " & CStr(Zeile) & " - " & CStr(Feld(Zeile)) & " Einträge"
Next
End Sub

Als auch Makro B:

Option Explicit
Sub Zaehlfunktion()
Dim lgRow As Long
Dim lgZiel As Long
Dim wks As Worksheet
Dim iCount As Integer

Set wks = Worksheets("Tabelle2")
lgRow = 1
lgZiel = 1
iCount = 1

Do
If Left(Cells(lgRow, 1), 5) <> Left(Cells(lgRow + 1, 1), 5) Then
wks.Cells(lgZiel, 1) = Left(Cells(lgRow, 1), 4)
wks.Cells(lgZiel, 2) = iCount
lgZiel = lgZiel + 1
iCount = 0
End If

iCount = iCount + 1
lgRow = lgRow + 1

Loop Until IsEmpty(Cells(lgRow, 1))

End Sub

Ermitteln als Lösung aber, dass es sich um nur einen Block mit 13 Elementen handeln würde.
Ich denke, man muss hier nur etwas geringfügig verändern. Weiß jemand Rat ???

Gruß aus Tü
Dari





10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Countfunktion
08.05.2003 20:08:32
PeterW

Hallo Dari,

das hab ich jetzt nicht mehr getestet (will die Datei nicht nochmal nachbauen) aber so sollte es laufen:

Option Explicit
Sub Zaehlfunktion()
Dim lgRow As Long
Dim lgZiel As Long
Dim wks As Worksheet
Dim iCount As Integer

Set wks = Worksheets("Tabelle2")
lgRow = 1
lgZiel = 1
iCount = 1

Do
If Right(Cells(lgRow +1, 1), 1) > Right(Cells(lgRow, 1), 1) Then
wks.Cells(lgZiel, 1) = Left(Cells(lgRow, 1), 4)
wks.Cells(lgZiel, 2) = iCount
lgZiel = lgZiel + 1
iCount = 0
End If

iCount = iCount + 1
lgRow = lgRow + 1

Loop Until IsEmpty(Cells(lgRow, 1))

End Sub

Gruß
Peter

Anzeige
Re: Countfunktion
08.05.2003 20:13:04
Dari

Ich probiers gleich mal aus ...

Re: Countfunktion
08.05.2003 20:16:14
PeterW

Sorry Dari,

man sollte doch testen, sehe gerade einen Fehler: natürlich muss es heißen:

If Right(Cells(lgRow +1, 1), 1) < Right(Cells(lgRow, 1), 1) Then

Gruß
Peter

Re: Countfunktion
08.05.2003 20:17:10
Dari

Ne, haut nicht hin, als Lösung kommt folgender Datensalat raus:

R101 3
R101 3
R101 1
R101 3
R101 1
R101 1

Trotzdem danke ...

Re: Countfunktion
08.05.2003 20:23:08
Dari

Wow,

jetzt gehts. Vielen Dank ! Er bringt als Lösung:

R101: 8
R101: 5

Wie könnte man denn statt den R101 Block 1, 2, 3 oder Einheit 1, 2, 3 einbauen ...
Ist das arg schwierig ???

Gruß und vielen Dank
Dari

Anzeige
Re: Countfunktion
08.05.2003 20:33:30
PeterW

Hallo Dari,

es ist nicht schwierig. Zum Verständnis: meinst Du in der Auswertungstabelle statt R101? Wie geht die Zählung in der Auswertung weiter wenn in der Usprungstabelle der Wechsel von R101 nach R102 erfolgt, fortlaufend oder wieder bei 1 beginnend?

Gruß
Peter

Re: Countfunktion
08.05.2003 20:41:49
Dari

Hallo, Peter,

weiß nicht genau, ob ich deine Frage verstanden habe. Habe jetzt noch Daten des Typs R102 eingebaut. Als Lösung bringt er jetzt :

R101: 8
R101: 5
R102: 4

Das iast auch gut so.Es wird naher aber so sein, dass sich dass nicht an den R´s festmacht ( es werden auch R102,103,104 in der ersten Einheit sein) sondern an den _1 bis _4.
Deshalb wäre es Super, wenn er als Auswertung bringen würde:

Einheit 1: 8
Einheit 2: 5
Einheit 3: 4

usw.

Gruß
Dari

Anzeige
Re: Countfunktion
08.05.2003 20:53:45
PeterW

Hallo Dari,

ich kann ja verstehen, dass Du Teilproblem für Teilproblem lösen willst, bei diesem helfe ich nochmal, dann steige ich aus; es kann nicht Sinn des Forums sein, dass ein gelöstes Problem die nächste Frage aufwirft. Damit wird nur das Archiv voll.

Gruß
Peter

Re: Countfunktion
08.05.2003 21:04:25
Dari

Hallo,

sorry, muss dich nochmal nerven, eine Sache bereitet mir weiterhin Kopfzerbrechen. Nach den R´s werden Werte miteinander verglichen und in Spalte D habe ich ne Excel-Formel eingebaut (Wenn die Differenz größer 0,5 dann bringe den Text "Abweichung zu hoch !").

Jetzt weiß ich ja dank deines Makro`s, die Einheit 1 hat z.B. 8 Elemente.
Mit der Formel ZÄHLENWENN(D:D;"Abweichung zu hoch") zählt er mir die Anzahl aller "Abweichung zu hoch" in Spalte D (also über alle Einheiten).
Bringt mir aber nicht viel, ich müßte wissen, wie viel "Abweichungen zu hoch" es in den jeweiligen Einheiten sind, um z.B. einen Prozentwert daraus zu ermitteln.

Könnte man das nicht mit der Auswertung deines Makros verbinden ?

Einheit 1: 8
Einheit 2: 5
Einheit 3: 4

Das man ihm sagt, zähle von einem Referenzpunkt immer diese Werte herunter, also z.B.

Anzahl Abweichungen
Einheit 1: 0
Einheit 2: 1
Einheit 3: 0

Sorry, ich will aus deiner Hilfe keine Unendliche Geschichte machen, aber ich habe sehr wenig Erfahrung auf diesem Gebiet und diese Aufgabe überfordert mich etwas ...

Gruß
Dari



Anzeige
Re: Countfunktion
08.05.2003 21:06:18
Dari

Ja, klar,

vielen Dank, Du hast mir sehr weitergeholfen.

Gruß
DAri

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige