Fachkundige und individuelle Beratung ist für uns selbstverständlich - rufen Sie uns an!
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Excel Frage
Excel Frage
Hallo
Ich bin kein Programmierer ,bastel aber doch gerne mit Excel herum , jetzt hab ich aber ein Problem
bei denen die mir bekannten Funktion nicht anwendbar sind !
Ich möchte aus mehreren Zahlen ,die Anzahl der verschiedenen Zahlen herausfinden ! (mehrere gleiche Zahlen zählen als eine Zahl)
Wie geht das ?
Beispiel
Zahlen 2 /76/ 45 /2 /49/2 /76
Es sollte dann 4 rauskommen (weil 4 verschiedene Zahlen)
Danke
mfG Manfred
Ich bin kein Programmierer ,bastel aber doch gerne mit Excel herum , jetzt hab ich aber ein Problem
bei denen die mir bekannten Funktion nicht anwendbar sind !
Ich möchte aus mehreren Zahlen ,die Anzahl der verschiedenen Zahlen herausfinden ! (mehrere gleiche Zahlen zählen als eine Zahl)
Wie geht das ?
Beispiel
Zahlen 2 /76/ 45 /2 /49/2 /76
Es sollte dann 4 rauskommen (weil 4 verschiedene Zahlen)
Danke
mfG Manfred
2 x Nubox 580, 2 x Nubox 310, Center CS 330 , Sub AW 880, DVD Player JVC XV N5, Receiver Kenwood KRFX 9060 DS, TV Samsung LE40S71B
Hi!
Wenn's ein Makro sein darf:
Initialisiere Vektor v der Länge n mit 0 // n max. Wert der vorkommen darf
Durchlaufe mit i die Liste komplett und setze v++
Setze c=0
Durchlaufe v mit i und setze c++ sobald v>0
danach hat c den Wert der Anzahl unterschiedlicher Elemente ...
.... so mal schnell aus der Hüfte geschossen ...
Cheers
der DukE
PS: Da ich kein VBA kann - muss der obige Pseudo-Code leider reichen
Wenn's ein Makro sein darf:
Initialisiere Vektor v der Länge n mit 0 // n max. Wert der vorkommen darf
Durchlaufe mit i die Liste komplett und setze v++
Setze c=0
Durchlaufe v mit i und setze c++ sobald v>0
danach hat c den Wert der Anzahl unterschiedlicher Elemente ...
.... so mal schnell aus der Hüfte geschossen ...
Cheers
der DukE
PS: Da ich kein VBA kann - muss der obige Pseudo-Code leider reichen
[size=75][color=#808080]LS: nuWave 10+ABL10 -::- nuWave CS-4+ABL8 -::- nuWave RS-5+ABL5 -::- nuWave AW-75
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
- JensII
- Star
- Beiträge: 8896
- Registriert: Di 11. Mär 2003, 17:35
- Wohnort: Zwischen den Nubis
- Has thanked: 2 times
- Been thanked: 16 times
M;an kann auch über New York von Köln nach Düsseldorf kommen, einfach ist aber die A3
Mit dem Befehl hast du das auch! Mit Fläche ist jetzt z.B. "A3:B7" gemeint![/quote]
Mit dem Befehl
Code: Alles auswählen
=Anzahl(Fläche)
WoZi: NuVero 11 & NuVero 7 & RS5 @ Anthem MRX540
Ist natürlich elegant!
Aber nach Zafi9's Aussage, gab's doch keine
Funktion, die das kann ... also selber basteln ...
Ist eh viel schöner !
Cheers
PS: Ist die A3 nicht immer voll?!?!
Aber nach Zafi9's Aussage, gab's doch keine
Funktion, die das kann ... also selber basteln ...
Ist eh viel schöner !
Cheers
PS: Ist die A3 nicht immer voll?!?!
[size=75][color=#808080]LS: nuWave 10+ABL10 -::- nuWave CS-4+ABL8 -::- nuWave RS-5+ABL5 -::- nuWave AW-75
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
Gesucht ist das Equivalent zu COUNT(DISTINCT foo) in SQL, Anzahl() hingegen entspricht COUNT(foo)...JensII hat geschrieben:M;an kann auch über New York von Köln nach Düsseldorf kommen, einfach ist aber die A3
Mit dem Befehlhast du das auch! Mit Fläche ist jetzt z.B. "A3:B7" gemeint!Code: Alles auswählen
=Anzahl(Fläche)
greetings, Keita
Ganz recht... mit anderen Worten: Es gibt - wie schon festgestellt - keine Excelfunktion die das leistet.
Um das Script kommt man da nicht herum...
Nun muss man wissen, um was fuer Eingangsdaten es sich handelt. Ganzzahlen in einem bestimmten Wertebereich wahrscheinlich, wenn der nicht zu gross wird, ist die obige Loesung schon optimal.
Wenn nicht, muesste man erst mal eine Ordnung in die Eingangsmenge bringen, das heisst hier Sortieren.
Da sind der Phantasie keine Grenzen gesetzt, nur 'bucketsort' faellt raus, das entspricht dem obigen Algorithmus...
Um das Script kommt man da nicht herum...
Nun muss man wissen, um was fuer Eingangsdaten es sich handelt. Ganzzahlen in einem bestimmten Wertebereich wahrscheinlich, wenn der nicht zu gross wird, ist die obige Loesung schon optimal.
Wenn nicht, muesste man erst mal eine Ordnung in die Eingangsmenge bringen, das heisst hier Sortieren.
Da sind der Phantasie keine Grenzen gesetzt, nur 'bucketsort' faellt raus, das entspricht dem obigen Algorithmus...
Hallo
"Anzahl" hilft in meinem Fall ja nicht ! (hatte ich natürlich auch schon versucht)
Ich kann kein VB programmieren ,zeichne höchstens ein Makro auf und leg dieses auf eine Schaltfläche !
Verstehe deshalb das Programmierchinesisch nicht
Die(ganzen) Zahlen können von 0 bis 90 gehen ! (Winkel) ,die Anzahl der Zahlen ist verschieden . (bis ca. 120 Zahlen)
Ich dachte nur ,das es ev. mit Verkettung von mehreren Funktionen eine einfache Lösung gibt !
Danke für eure Mühe
mfG Manfred
"Anzahl" hilft in meinem Fall ja nicht ! (hatte ich natürlich auch schon versucht)
Ich kann kein VB programmieren ,zeichne höchstens ein Makro auf und leg dieses auf eine Schaltfläche !
Verstehe deshalb das Programmierchinesisch nicht
Die(ganzen) Zahlen können von 0 bis 90 gehen ! (Winkel) ,die Anzahl der Zahlen ist verschieden . (bis ca. 120 Zahlen)
Ich dachte nur ,das es ev. mit Verkettung von mehreren Funktionen eine einfache Lösung gibt !
Danke für eure Mühe
mfG Manfred
2 x Nubox 580, 2 x Nubox 310, Center CS 330 , Sub AW 880, DVD Player JVC XV N5, Receiver Kenwood KRFX 9060 DS, TV Samsung LE40S71B
Code: Alles auswählen
Sub Zafi9()
Dim cells()
For x = 1 To 7
ReDim Preserve cells(x)
cells(x) = Range("A" & x)
Next x
Dim v()
For x = 1 To 76
ReDim Preserve v(x)
v(x) = 0
Next x
For x = 1 To 7
v(cells(x)) = v(cells(x)) + 1
If (v(cells(x)) = 1) Then c = c + 1
Next x
MsgBox (c)
End Sub
Wie gesagt - VBA kann ich eigentlich gar nicht - nur mal schnell gegoogelt, wie
so die grundlegenden Strukturen sind und obiges ist dabei herausgekommen.
Erste For - liefert dir in handlicher Form die Zellen A1:A7 zur Weiterverarbeitung
Zweite For - liefert dir den Null-Vektor - quasi die "buckets"
Dritte For - legt jetzt Wert Z in Bucket Z ab
Wenn ein Bucket das 1. Mal einen Eintrag erhält, wird der Zähler erhöht, an dessen
Wert du final interessiert bist.
Cheers
der DukE
NACHTRAG: das obige Beispiel bezieht sich strikt auf dein genanntes Beispiel. "7" Werte , "76"
der max. Wert.
[size=75][color=#808080]LS: nuWave 10+ABL10 -::- nuWave CS-4+ABL8 -::- nuWave RS-5+ABL5 -::- nuWave AW-75
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
AVR: H/K 5500 -::- AMP: Rotel RB-1070 -::- DVD: Denon 2200 -::- TV: Panasonic TX-32PD50D[/color][/size]
- BlackJoker
- Semi
- Beiträge: 92
- Registriert: Mo 6. Dez 2004, 12:12
- Wohnort: Köln