![]() |
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
|
|
|
LinkBack | Discussietools | Weergave |
|
#1
|
|||
|
|||
|
@bsalv
http://www.worksheet.nl/forumexcel/v...tml#post601609 Hier heb je een keurige oplossing gegeven voor unieke waarde tellen. Dit lukt ook met getallen. Maar ik zat even te experimenteren om nu de som van die unieke getallen te krijgen. Ik dacht dat onderstaande code misschien wel zou werken maar dat doet hij helaas niet. Code:
Function somuniek(bereik)
Dim SomUniekBereik As New Collection, c As Range
On Error Resume Next
For Each c In bereik.Cells
If c <> "" Then SomUniekBereik.Add Item:=c.Value, Key:=CStr(c.Value)
Next
On Error GoTo 0
somuniek = SomUniekBereik.Sum
End Function
Dus rij is bv 1, 1, 1, 2, 2, 3, 3, 4 Het resultaat moet dan wezen 10 (1+2+3+4=10)
__________________
Willem Hoe meer je weet hoe meer je vergeet. Hoe meer je vergeet hoe minder je weet. Hoe minder je weet hoe minder je vergeet. Hoe minder je vergeet hoe meer je weet. |
| Sponsored Links |
|
#2
|
||||
|
||||
|
zoiets bijvoorbeeld
Code:
Function somuniek(bereik)
Dim SomUniekBereik As New Collection, c As Range, it As Variant
On Error Resume Next
For Each c In bereik.Cells
If c <> "" And IsNumeric(c) Then SomUniekBereik.Add Item:=c.Value, Key:=CStr(c.Value)
Next
On Error GoTo 0
For Each it In SomUniekBereik
somuniek = somuniek + CDbl(it)
Next
End Function
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop Laatst gewijzigd door bsalv; 4 februari 2012 om 15:46 Reden: eigenlijk is die CDbl vermoedelijk niet nodig |
|
#3
|
|||
|
|||
|
of
Code:
Function F_count_distinct_snb(c01)
F_count_distinct_snb = Evaluate("Sum(N(countif(offset(" & c01.Cells(1).Address & ",,,row(" & c01.Address & "))," & c01.Address & ")=1))")
End Function
__________________
VBA voor smarties |
|
#4
|
|||
|
|||
|
Kort maar krachtig,
Maar niet wat ik vroeg. Met jou formule krijg ik het aantal verschillende waarden en mijn vraag was duidelijk de som van alle verschillende waarden: Citaat:
__________________
Willem Hoe meer je weet hoe meer je vergeet. Hoe meer je vergeet hoe minder je weet. Hoe minder je weet hoe minder je vergeet. Hoe minder je vergeet hoe meer je weet. |
|
#5
|
||||
|
||||
|
@snb
misschien kan je weer eens iets goochelen het is de bedoeling dat ieder getal misschien wel vaker voorkomt, maar die mag maar 1 keer in de som mee opgeteld worden !!! Code:
Function F_Sommeer_Verschillende_Waarden_BSALV(c01)
For j = 1 To UBound(c01.Value)
c02 = c02 & "~|~" & Join(Application.Index(c01.Value, j), "~|~")
Next
c02 = Mid(c02, 4, Len(c02) - 4)
Do
i = InStr(1, c02, "~|~")
If i <> 0 Then
c03 = Left(c02, i - 1)
If IsNumeric(c03) Then som = som + CDbl(c03)
If i > 1 Then
Do
l = Len(c02)
c02 = Replace(c02, "~|~" & c03 & "~|~", "~|~")
Loop While l <> Len(c02)
End If
c02 = Mid(c02, i + 3, Len(c02))
End If
Loop While i <> 0
F_Sommeer_Verschillende_Waarden_BSALV = som
End Function
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#6
|
||||
|
||||
|
In formulevorm :
Code:
=SOMPRODUCT((A1:A8)*(AANTAL.ALS(VERSCHUIVING($A$1;RIJ(A1:A8)-RIJ(A1);;AANTAL(A1:A8)-(RIJ(A1:A8)-RIJ(A1));1);A1:A8)=1))
__________________
Groet, GiMe Moderator Mr.GiMe@worksheet.nl Alles is relatief en zelfs dat.. Een bijlage (Excelvoorbeeldje met aanduiding van het gewenste resultaat) erbij betekent: -dat de helper(s) niet de, meestal reeds bestaande, worksheet van de vrager moet(en) overtypen -geen (ver)gissen mogelijk is bij de interpretatie van het proza -men reeds kan anticiperen op toekomstige problemen -veel vlugger tot een oplossing komt kortom : Het wiel niet opnieuw dient uitgevonden te worden ! Laatst gewijzigd door GiMe; 4 februari 2012 om 17:39 Reden: formule veralgemeend |
|
#7
|
|||
|
|||
|
Hallo Willem,
Of: Code:
=SOM(ALS(INTERVAL(A1:A8;A1:A8)>0;A1:A8)) Groet Dirk Laatst gewijzigd door dirktimm; 4 februari 2012 om 17:41 |
|
#8
|
||||
|
||||
|
of hoe je via Parijs en Rome rond ook kunt gaan koffie drinken bij de buren
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#9
|
|||
|
|||
|
Toch leuk dat er zoveel reactie komen om mij te helpen met mijn experimentje.
De oplossing met formules had ik reeds (op de zelfde site gevonden). Stukje bij beetje wil ik ook iets meer van vba weten vandaar deze vraag. Er zijn inmiddels 7 reacties op mijn vraag geweest maar #2 was reeds voldoende. Toch allemaal bedankt.
__________________
Willem Hoe meer je weet hoe meer je vergeet. Hoe meer je vergeet hoe minder je weet. Hoe minder je weet hoe minder je vergeet. Hoe minder je vergeet hoe meer je weet. |
|
#10
|
|||
|
|||
|
Daarom ten overvloede:
Code:
Function F_count_distinct_snb3(c01)
F_count_distinct_snb3 = Evaluate("Sumproduct((countif(offset(" & c01.Cells(1).Address & ",,,row(" & c01.Address & ")-row(" & c01.Cells(1).Address & ")+1)," & c01.Address & ")=1)*(" & c01.Address & "))")
End Function
Code:
Function Function F_sum_distinct_snb4(c01)
F_sum_distinct_snb4 = Evaluate("sum(if(frequency(" & c01.Address & "," & c01.Address & ")>0," & c01.Address & "))")
End Function
__________________
VBA voor smarties Laatst gewijzigd door snb; 4 februari 2012 om 18:25 |
![]() |
| Discussietools | |
| Weergave | |
|
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
Soortgelijke discussies
|
||||
| Discussie | Auteur | Forum | Reacties | Laatste bericht |
| Unieke waarden en aantal | Hanzsel | Vragen | 9 | 18 april 2012 18:02 |
| Unieke waarden weergeven na filter | R.Jorna | Afgehandelde vragen | 9 | 21 oktober 2011 16:52 |
| Unieke waarden in lijst verwijderen | Timmo | Afgehandelde vragen | 25 | 18 juni 2009 20:02 |
| unieke waarden filteren uit 2 lijsten | maze00 | Afgehandelde vragen | 5 | 8 april 2009 10:31 |
| ID's koppelen aan unieke waarden. | Ids | Afgehandelde vragen | 8 | 28 november 2008 11:21 |