Zum Inhalt springen
  • Das GSF wandelt Links in Affiliate Links um, um ggf. eine Provision erhalten zu können. Gerne nutzen bitte, danke! Mehr Infos, wie ihr das GSF unterstützen könnt, findet ihr im GSF Support Topic.

Empfohlene Beiträge

Geschrieben

Folgendes Problem:

Gibt es in Excel eine Formel, mit der man Werte zählen kann, die man vorher noch nicht kennt. Z.B. Jedes Mal, wenn der Name Müller auftaucht, soll Excel das zählen. Natürlich kann ich jetzt noch nicht sagen, welcher Name in der Liste stehen wird. Es könnte theoretisch auch sein, dass Müller nie genannt wird und dafür Meier usw. :-D

:-D

Geschrieben
mit VBA programmieren.

bis wann brauchst denn das?

VBA , ist doch Visual Basic, oder? :-D

Das ganze ist für ne gute Freundin, daher weiß ich nicht genau bis wann das benötigt wird. Ist das denn nen großer Akt? Ich werde mal fragen ob es sehr wichtig ist oder es sich nur um ne Spielerei handelt.

Geschrieben
es gibt doch diese zählenwenn funktion...

meinst du vielleicht sowas?

=zählenwenn(datenbereich;kriterien)

:-D

Ja, die gibt es und ist die Notlösung. Die Funktion geht ja nur, wenn ich alle Namen kenne, die nachher in der Liste stehen.

Ich bzw. die Freundin suche aber ja was, der mir automatisch alle unterschiedlich vorkommenden Namen raussucht und mir sagt wie oft der Name vorkommt. Wobei, wenn ich das so überlege: Geht sowas überhaupt? :heul:

Geschrieben

Ich bin zwar nicht so der Office Profi, aber mit Excel sollte das mit der Pivot-Funktionalität gehen.

Ich hab das einfach mal getestet und ein paar Namen in eine Spalte geschrieben. Als nächstes die Einträge

markiert und im Menue "Daten"->"Pivot-Table und PivotChart Bericht..." aufgerufen. Als nächstes immer "Weiter"

gedrückt kurz vor Schluss noch angegeben dass die Pivot Tabelle in die aktuelle Mappe soll. "Fertig stellen".

In die erzeugte Pivottabelle zieht man nun das Feld aus der PivotTable-Feldliste das Feld "Zeilenfelder hierher ziehen"

und auch in "Datenfelder hierher ziehen".

Linke Spalte ist dann der jeweilige Name und rechte Spalte die Anzahl wie oft er vorkommt.

Mit der Pivot-Funktion kann man noch ne ganze Menge mehr machen, spiel einfach mal mit rum.

Das Beispiel hab ich an den Beitrag hier angehängt.

Grüße Mostro.

Mostro_PivotExample.zip

Geschrieben (bearbeitet)
VBA , ist doch Visual Basic, oder? :-D

ja.

hab hier mal ein kleines programm geschrieben.

mit ALT+F11 kommst du in den vba modus und kannst das programm anschauen

du müsstest lediglich die gesamtzahl der namen in die Zelle D1 eingeben, in diesem fall waren das 20.

mit der tastenkombination STRG+M spuckt er die anzahl der "Müller" aus :-D

funktioniert in dieser variante allerdings nur wenn die namen in der ersten spalte (A) stehen

hier das excel file

http://www.bellavespa.de/gsf/mueller.xls

und der zugehörige vba code falls es jemanden interessiert:

Option Explicit

Dim wert As String

Dim anzahl As Single

Dim i As Integer

Sub Mueller()

anzahl = 0

For i = 1 To Cells(1, 4)

wert = Cells(i, 1)

If wert = "Müller" Then anzahl = anzahl + 1

Next i

Cells(8, 5) = anzahl

End Sub

Bearbeitet von jochen0407
Geschrieben

Da es ja wie gesagt nicht für mich ist, noch für gar keine :-D

Habe es der Dame aber gemailt und sie schaut es sich an. So wie ich das Problem verstanden habe, erfüllt aber die Pivot Variante die geforderte Lösung am schnellsten & für den Laien am einfachsten.

Zusammenfassung also:

Lösung Mostro hat bei mir im Selbstversuch sofort geklappt.

Lösung "Müller" sucht ja nur nach Müller, und nicht nach dem Rest. Das ist aber auch gefordert.

Lösung "lummy" bekomme ich irgendwie nicht hin. Wo soll ich da was eingeben?

Wenn ich am Mo./Di. was höre lasse ich es euch wissen. Vielleicht stelle ich auch mal ein Foto von der Dame rein, damit sich eure Mühen auch gelohnt haben :wasntme: :-D

Vielen Dank auf jeden Fall schon mal, auch im Namen von Fräulein "Anja" :-D

Geschrieben
Vielleicht stelle ich auch mal ein Foto von der Dame rein, damit sich eure Mühen auch gelohnt haben :wasntme: :-D

au ja, wenn es sich lohnt würd ich mich auch noch mal hinsetzen und das ganze nach ihren wünschen umschreiben :love:

Geschrieben
au ja, wenn es sich lohnt würd ich mich auch noch mal hinsetzen und das ganze nach ihren wünschen umschreiben :love:

Lohnt sich auf jeden Fall :love: , ist allerdings an einen anderen guten Freund vergeben. :-D( :-D:-D

Geschrieben

hmmm, das mit dem freund ist natürlich schlecht für uns.

sonst wär ich die "pivotierung" mit ihr nochmal persönlich bei nem kaffee durchgegangen.

grüße mostro

Geschrieben
haha, wenn der so "gute" freunde wie dich hat, dann braucht er keine feinde.

Da hast du was falsch verstanden :-D:-D

Und 300km fährt man(n) ja auch nicht mal eben so ab. :-D

So, nun aber genug mit dem Offtopic. Wenn es was neues gibt, werde ich mich hier wieder zu Wort melden.

Geschrieben (bearbeitet)

Hallo Aendy!

Falls deine Freundin diese Funktion noch benötigen sollte, hab ich schnell mal sowas in VBA zusammengezimmert.

Wirklich nur ganz einfach aufgebaut erstmal...ohne große Gültigkeitsprüfungen, aber die geforderten Funktionen sind vorhanden.

Das Makro wirft alle verschiedenen vorkommenden Namen mitsamt der Anzahl aus.

Hier die Voraussetzungen:

- Alle Namen müssen in der Spalte A stehen

- Die Spalte A darf keine Überschrift haben

Die Ausgabe erfolgt in den Spalten B, C und D.

Hier findest du die Excel-Datei.

Hier ist der Code, falls es jemanden interessiert:

Option Explicit

Sub Namen_zaehlen()

Dim AnzZeilen As Long
Dim Arr_Namen()
Dim Vorkommen As Long
Dim r, x, y As Long
Dim GleicheWerte As Boolean

'Anzahl der ausgefüllten Zellen zählen
AnzZeilen = ActiveSheet.UsedRange.Rows.Count

'Prüfen, ob Werte vorhanden sind
If AnzZeilen = 1 And Len(Range("A1").Value) < 1 Then
MsgBox ("Im ausgewählten Bereich sind keine Daten vorhanden!")
Exit Sub
Else
End If

'Verschiedene Namen ermitteln
r = 0
For x = 1 To AnzZeilen
GleicheWerte = False
If x = 1 Then
ReDim Preserve Arr_Namen(r)
Arr_Namen(r) = Range("A" & x).Value
r = r + 1
Else
For y = 0 To r - 1
If Range("A" & x).Value <> Arr_Namen(y) Then
GleicheWerte = False
Else
GleicheWerte = True
End If
If GleicheWerte = True Then Exit For
Next y
If GleicheWerte = False Then
ReDim Preserve Arr_Namen(r)
Arr_Namen(r) = Range("A" & x).Value
r = r + 1
End If
End If
Next x

Range("B1").Value = "Anzahl verschiedener Namen: " & r

'Anzahl des Vorkommens einzelner Namen ermitteln
For x = 1 To r
Vorkommen = 0
For y = 1 To AnzZeilen
If Range("A" & y).Value = Arr_Namen(x - 1) Then
Vorkommen = Vorkommen + 1
Else
End If
Next y
Range("C" & x).Value = Arr_Namen(x - 1)
Range("D" & x).Value = Vorkommen
Next x

Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select

End Sub

Damit das Makro komfortabel aufgerufen werden kann, kannst du in eine der Menüleisten eine neue Schaltfläche einfügen, die das Makro startet.

Dazu wählst du den Menüpunkt "Extras/Anpassen" aus und wechselst zum Tab "Befehle".

Links findest du ziemlich weit unten den Eintrag "Makros" - einmal anklicken.

Jetzt siehst du rechts einen Smiley...den ziehst du mit der Maus einfach in eine bestehende Menüleiste.

Das "Anpassen"-Fenster kannst du jetzt schließen.

Einmal auf den Smiley klicken und das Makro "Namen_zaehlen" auswählen und du bist fertig.

Wenn du in Zukunft diese Datei öffnest und den Smiley klickst, läuft das Makro ab.

Ich hoffe, ich hab das Ganze verständlich erklärt... :-D

Erweiterungen und Anpassung an besondere Bedürfnisse sind natürlich kein Problem :-D

Das vorliegende Makro soll nur ein Beispiel sein, wie es funktionieren kann.

/alex

Bearbeitet von LX99
Geschrieben

Danke, habe es ausprobiert, und auch die letzte Lösung funktioniert. Bevor ihr euch jetzt aber weitere Mühen macht, wartet mal den Mo./Di. ab. Dann schaut sie sich das alles an und wird mir Rückmeldung geben.

Sie lässt auf jeden Fall schon mal vielen Dank ausrichten.

PS: EINE Freundin, nicht meine Freundin :-D

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.


×
×
  • Neu erstellen...

Wichtige Information