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

Excel Frage

Hier dreht es sich um (fast) alles...
zafi9
Star
Star
Beiträge: 536
Registriert: Di 24. Dez 2002, 13:56
Wohnort: Tirol

Excel Frage

Beitrag von zafi9 »

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
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
Benutzeravatar
DukE[2k3]
Semi
Semi
Beiträge: 204
Registriert: Fr 29. Aug 2003, 22:58
Wohnort: Kiel

Beitrag von DukE[2k3] »

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 :wink:
[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]
Benutzeravatar
JensII
Star
Star
Beiträge: 8896
Registriert: Di 11. Mär 2003, 17:35
Wohnort: Zwischen den Nubis
Has thanked: 2 times
Been thanked: 16 times

Beitrag von JensII »

M;an kann auch über New York von Köln nach Düsseldorf kommen, einfach ist aber die A3 ;-)

Mit dem Befehl

Code: Alles auswählen

=Anzahl(Fläche)
hast du das auch! Mit Fläche ist jetzt z.B. "A3:B7" gemeint![/quote]
WoZi: NuVero 11 & NuVero 7 & RS5 @ Anthem MRX540

:music-rockon: :music-rockout:
Benutzeravatar
DukE[2k3]
Semi
Semi
Beiträge: 204
Registriert: Fr 29. Aug 2003, 22:58
Wohnort: Kiel

Beitrag von DukE[2k3] »

Ist natürlich elegant! :lol:

Aber nach Zafi9's Aussage, gab's doch keine
Funktion, die das kann ... also selber basteln ...

Ist eh viel schöner ! :wink:


Cheers

PS: Ist die A3 nicht immer voll?!?! 8)
[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]
Benutzeravatar
Koala
Star
Star
Beiträge: 5193
Registriert: Mo 12. Jan 2004, 12:49
Wohnort: Bielefeld

Beitrag von Koala »

JensII hat geschrieben:M;an kann auch über New York von Köln nach Düsseldorf kommen, einfach ist aber die A3 ;-)

Mit dem Befehl

Code: Alles auswählen

=Anzahl(Fläche)
hast du das auch! Mit Fläche ist jetzt z.B. "A3:B7" gemeint!
Gesucht ist das Equivalent zu COUNT(DISTINCT foo) in SQL, Anzahl() hingegen entspricht COUNT(foo)...

greetings, Keita
Benutzeravatar
Gunar
Semi
Semi
Beiträge: 174
Registriert: Do 29. Jan 2004, 10:57
Wohnort: Neubrandenburg

Beitrag von Gunar »

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...
zafi9
Star
Star
Beiträge: 536
Registriert: Di 24. Dez 2002, 13:56
Wohnort: Tirol

Beitrag von zafi9 »

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 :oops:

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
Benutzeravatar
eyeball
Star
Star
Beiträge: 1439
Registriert: So 7. Nov 2004, 17:26
Wohnort: Osnabrück

Beitrag von eyeball »

Spiel mal mit der HÄUFIGKEIT-Funktion rum.
Nubert CS70+CS70+CS70+DS50+DS50+WS12
Samsung PS58B859, Oppo BDP-83, Sony PS3
Onkyo PR-SC886, PA-MC5500
Benutzeravatar
DukE[2k3]
Semi
Semi
Beiträge: 204
Registriert: Fr 29. Aug 2003, 22:58
Wohnort: Kiel

Beitrag von DukE[2k3] »

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. :wink:
[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]
Benutzeravatar
BlackJoker
Semi
Semi
Beiträge: 92
Registriert: Mo 6. Dez 2004, 12:12
Wohnort: Köln

Beitrag von BlackJoker »

Hi,

probier mal folgendes:

B1: =WENN(ZÄHLENWENN(A$1:A1;A1)>1;"";A1)

C1: =ANZAHL(B1:BX)


Gruß Stephan
4 x Nuline30 Front +ABL, CS40, 2 x AW 550, Denon 2805 (mit ABL Umbau nach Rudijopp)
Antworten