Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Auszählen von Begriffen in einer Spalte

Auszählen von Begriffen in einer Spalte
17.07.2003 18:03:27
Michael
Hallo,
eine Spalte enthält drei verschiedene Begriffe (abc, def, ghi). Wie kann ich die Anzahl der Begriffe (Anzahl "abc", Anzahl "def", Anzahl "ghi")von Excel auszählen lassen?
Gruß
Micha

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auszählen von Begriffen in einer Spalte
17.07.2003 18:18:44
Chris
kann ich Dir Fr. sagen

AW: Auszählen von Begriffen in einer Spalte
18.07.2003 09:47:13
Chris (Chrisir)
Hallo !
es gibt hier mehrere Chris', glaube ich.
Naja, hier also meine gestern für Freitag zugesagte Lösung.
Kopiere Deine Tabelle nach Word und lasse folgenden vba-code
darauf anwenden.
Passe ggf. die Zeile Const intMax = 210 an.
210 dürfte zu wenig sein...
Der Makro zählt alle(!) Zellen (also nicht nur die markierten Zellen o.ä.), legt ein neues Word-Doku an, und legt dort die Ergebnisse ab.
Für leere Zeilen verwendet er den Eintrag "nicht erfasst".
An ca. 5 Stellen ist von Ihnen eventuell ein Zeilenumbruch zu entfernen oder Leerzeichen _, also " _" einzufügen (Syntaxfehler).
Rückfragen gerne an mich.
Viele Grüße !
Christoph
Option Explicit
' Dieses Modul zählt Begriffe.
' Ein ganzer Zellinhalt ist ein Begiff.
Const intMax = 210

Dim arrListeDerBegriffe(intMax) As String

Sub TabelleCountBegriffe()
Dim cellMyCell                      As Cell
Dim strTextDerZelle                 As String
Dim strBisherVorgekommeneBegriffe   As String
Dim arrListeZaehler(intMax)         As Integer
Dim intI                            As Integer
Dim intMyIndex                      As Integer
Dim strTitelDokument                As String
Dim intMyRowNumber                  As Integer
Dim tblMyTableDestiny               As Table
' ggf Abbruch
If Application.Documents.Count <= 0 Then
Exit Sub
End If
' ggf Abbruch
If Application.ActiveDocument.Tables.Count <= 0 Then
MsgBox "Keine Tabelle gefunden."
Exit Sub
End If
' Init (vermutlich überflüssig)
For intI = 1 To intMax
arrListeZaehler(intI) = 0
arrListeDerBegriffe(intI) = ""
Next intI
strBisherVorgekommeneBegriffe = ""
strTitelDokument = ActiveDocument.FullName
intI = 0
For Each cellMyCell In ActiveDocument.Tables(1).Range.Cells
strTextDerZelle = cellMyCell.Range.Text
' Formatieren; -2 wg. Sonderzeichen am Zellenende
strTextDerZelle = Trim(UCase(Left(strTextDerZelle, Len(strTextDerZelle) - 2)))
' Ist Zelle leer?
If Len(strTextDerZelle) < 1 Then
cellMyCell.Range.Text = "nicht erfasst"
' Var neu belegen
strTextDerZelle = cellMyCell.Range.Text
' Formatieren; -2 wg. Sonderzeichen am Zellenende
strTextDerZelle = Trim(UCase(Left(strTextDerZelle, Len(strTextDerZelle) - 2)))
End If
' Enthält die Zelle Text?
If Len(strTextDerZelle) >= 1 Then
' Kam der Begriff schon mal vor?
If InStr(1, strBisherVorgekommeneBegriffe, "#" + strTextDerZelle + "#") <= 0 Then
' neuer Begriff
' neuen Begriff registrieren
strBisherVorgekommeneBegriffe = strBisherVorgekommeneBegriffe + _
"#" + strTextDerZelle + "#"
arrListeDerBegriffe(intI) = strTextDerZelle
intI = intI + 1
' Maximum erreicht?
If intI > intMax Then
intI = intMax
' ggf. Abbruch
If MsgBox("Bereichsüberschreitung für intI", vbInformation + vbOKCancel) _
= vbCancel Then
Exit Sub
End If
End If
Else
' Begriff kam schon mal vor
' tue nichts
End If
' Begriff zählen
intMyIndex = IndexAusBegriff(strTextDerZelle)
arrListeZaehler(intMyIndex) = arrListeZaehler(intMyIndex) + 1
End If
Next cellMyCell
' Ausgabe Ergebnisse neues Dokument **********************************
Documents.Add
Selection.TypeText "Am " & Date & " um " & Time & " aus " & _
strTitelDokument & "." & vbNewLine & vbNewLine
Selection.TypeText strBisherVorgekommeneBegriffe
Selection.TypeText vbNewLine + vbNewLine + vbNewLine + vbNewLine + vbNewLine
Set tblMyTableDestiny = Selection.Tables.Add(Selection.Range, 2, 2)
' fertiges Array ausgeben
intMyRowNumber = 1
' Schleife
For intI = 0 To intMax
If arrListeDerBegriffe(intI) <> "" Then
tblMyTableDestiny.Rows(intMyRowNumber).Cells(1).Range.Text = arrListeDerBegriffe(intI)
tblMyTableDestiny.Rows(intMyRowNumber).Cells(2).Range.Text = arrListeZaehler(intI)
tblMyTableDestiny.Rows(intMyRowNumber).Cells(2).Select
Selection.MoveRight Unit:=wdCell
intMyRowNumber = intMyRowNumber + 1
End If
Next intI
MsgBox "Fertig"
End Sub


Function IndexAusBegriff(strLokalText) As Integer
Dim intLokalI   As Integer
For intLokalI = 0 To intMax
If arrListeDerBegriffe(intLokalI) = strLokalText Then
IndexAusBegriff = intLokalI
Exit Function
End If
Next intLokalI
IndexAusBegriff = intLokalI - 1
MsgBox "Nichts gefunden " + strLokalText
End Function


Anzeige
AW: Auszählen von Begriffen in einer Spalte
17.07.2003 18:09:39
ChrisL
Hi Micha
=COUNTIF(A:A,"abc")
=ZÄHLENWENN(A:A;"abc")
Gruss
Chris

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige