abonnement Unibet Coolblue
  woensdag 23 december 2009 @ 19:08:34 #226
62215 qu63
..de tijd drinkt..
pi_75980776
quote:
Op woensdag 23 december 2009 18:39 schreef RoaldReurink het volgende:

[..]

Dank voor je snelle respons, maar het lukt niet echt Even een screenshot van het probleem...bij de vraagtekens dus moet 'nee' komen wanneer het gezin geen kinderen heeft. In kolom D zie je de dropdownbox en in kolom F de mogelijkheden voor die dropdownbox.

[ afbeelding ]
In B3 komt dit:
=ALS(OF(D1="alleenstaand";D1="gehuwd");"Nee";"Ja")
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_75984586
Top! Dat werkt, heel erg bedankt, kan ik weer verder
pi_76141959
Ik vroeg mij af of dit mogelijk is:



De klant kiest bijvoorbeeld 'Man', 'Premieduur 15 jaar, geboren op 12-08-2008 (dus 1 jaar oud), dan wordt er automatisch 'leeftijd 1 MAN' gekozen = 5,00

Het lastige is de geboortedatum dat als ik nu invul 21-02-1986 dat Excel weet dat ik dan 23 ben, en de goede lengte van de premieduur.

Is dit mogelijk? Zou namelijk erg mooi zijn als dat zo is

Gr,
Roald
  maandag 28 december 2009 @ 15:26:55 #229
85514 ralfie
!Yvan eht nioj
pi_76142899
quote:
Op maandag 28 december 2009 15:03 schreef RoaldReurink het volgende:
Ik vroeg mij af of dit mogelijk is:

[ afbeelding ]

De klant kiest bijvoorbeeld 'Man', 'Premieduur 15 jaar, geboren op 12-08-2008 (dus 1 jaar oud), dan wordt er automatisch 'leeftijd 1 MAN' gekozen = 5,00

Het lastige is de geboortedatum dat als ik nu invul 21-02-1986 dat Excel weet dat ik dan 23 ben, en de goede lengte van de premieduur.

Is dit mogelijk? Zou namelijk erg mooi zijn als dat zo is

Gr,
Roald
geen idee wat je nu precies wilt... Je wilt iets laten selecteren op basis van de selectie man of vrouw, of wat?
pi_76143037
Vrouwen kunnen geen 0-4 jaar zijn?
pi_76143167
Je hebt in excel de NOW functie (zal wel NU heten in het Nederlands ofzo, achterlijke vertalingen altijd), die de huidige tijd teruggeeft, als je daar de geboortedatum vanaf haalt krijg je de leeftijd?
  maandag 28 december 2009 @ 15:38:21 #232
43584 Beregd
absolutely inch perfect
pi_76143417
quote:
Op maandag 28 december 2009 15:33 schreef kingjotte het volgende:
Je hebt in excel de NOW functie (zal wel NU heten in het Nederlands ofzo, achterlijke vertalingen altijd), die de huidige tijd teruggeeft, als je daar de geboortedatum vanaf haalt krijg je de leeftijd?
Dan krijg je je leeftijd in dagen, wat niet altijd even handig is om mee te rekenen.

je kunt ook bijvoorbeeld year(now())-year(a1)+(month(now())-month(a1)/12+(day(now())-day(a1))/365 doen
pi_76143957
En dan ROUNDDOWN
pi_76143963
quote:
Op maandag 28 december 2009 15:38 schreef Beregd het volgende:

[..]

Dan krijg je je leeftijd in dagen, wat niet altijd even handig is om mee te rekenen.

je kunt ook bijvoorbeeld year(now())-year(a1)+(month(now())-month(a1)/12+(day(now())-day(a1))/365 doen
dat klopt niet, het moet dit zijn:

=YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
pi_76144048
Huh doe gewoon =ROUNDDOWN((TODAY()-A1)/365;0)
waar A1 de geboortedatum is. Of ben ik nou gek
  maandag 28 december 2009 @ 15:54:02 #236
43584 Beregd
absolutely inch perfect
pi_76144112
quote:
Op maandag 28 december 2009 15:50 schreef kingjotte het volgende:

[..]

dat klopt niet, het moet dit zijn:

=YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
dat zei ik toch

en waarom vraag je het dan?
  maandag 28 december 2009 @ 15:57:10 #237
43584 Beregd
absolutely inch perfect
pi_76144258
quote:
Op maandag 28 december 2009 15:52 schreef DaFan het volgende:
Huh doe gewoon =ROUNDDOWN((TODAY()-A1)/365;0)
waar A1 de geboortedatum is. Of ben ik nou gek
ja, als je enkel jaren moet hebben is dat idd het makkelijkste maar soms is het exact nodig.

in excel 2007 is er trouwens een nieuwe excelfunctie die het verschil in data berekent.
pi_76145369
quote:
Op maandag 28 december 2009 15:54 schreef Beregd het volgende:

[..]
dat zei ik toch

en waarom vraag je het dan?
jij: YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1)/12+(DAY(NOW())-DAY(A1))/365
ik: YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
(hint: het zit hem in de haakjes)

met jouw oplossing is iemand die op 1-1-2009 geboren is: 11,99063927
met mijn oplossing is iemand die op 1-1-2009 geboren is: 0,990639269

Waarom ik het vroeg? Omdat ik me afvroeg wat het probleem was (Het was niet mijn probleem om mee te beginnen)
  maandag 28 december 2009 @ 16:28:34 #239
43584 Beregd
absolutely inch perfect
pi_76145435
ah, een haakje, boeiend.

Ik dacht dat je een vraag stelde, mijn excuses.
  maandag 28 december 2009 @ 16:33:32 #240
43584 Beregd
absolutely inch perfect
pi_76145623
om nog even terug te keren op de formule van dafan, die zal niet altijd werken omdat sommige jaren 366 dagen tellen, zeker als je over vele jaren rekent
pi_76146175
Ja ok, met leeftijd uitrekenen is gelukt.

Echter nog niet dit probleem: uit tabel (zie figuur) moet er dus automatisch worden gekozen dat iemand 'man' is en '1 jaar', en premieduur '15 jaar', dus er moet automatisch 5,00 (euro) worden geselecteerd.

Die 5, is 5 euro, dus er moet komen:

Premiekosten: 5 euro (=man, 1jaar, premieduur 15 jaar --> hier een formule voor)

Hopelijk zo goed uitgelegd
pi_76146342
quote:
Op maandag 28 december 2009 16:33 schreef Beregd het volgende:
om nog even terug te keren op de formule van dafan, die zal niet altijd werken omdat sommige jaren 366 dagen tellen, zeker als je over vele jaren rekent
Dat wordt pas na 100 jaar ofzo een issue, of de dag erna. Maar goed ik snap je punt
pi_76147977
quote:
Op maandag 28 december 2009 16:48 schreef RoaldReurink het volgende:
Ja ok, met leeftijd uitrekenen is gelukt.

Echter nog niet dit probleem: uit tabel (zie figuur) moet er dus automatisch worden gekozen dat iemand 'man' is en '1 jaar', en premieduur '15 jaar', dus er moet automatisch 5,00 (euro) worden geselecteerd.

Die 5, is 5 euro, dus er moet komen:

Premiekosten: 5 euro (=man, 1jaar, premieduur 15 jaar --> hier een formule voor)

Hopelijk zo goed uitgelegd
Wat is het regeltje om aan die 5 euro te komen, gegeven het geslacht en de leeftijd? Moet je dan niet ook de premieduur weten?

Als we het in een formule moeten vatten, zullen we toch eerst moeten weten wat de spelregels zijn.

Verder, wat is nou precies het gewenste resultaat? Je hebt het over automatisch 5,00 selecteren, maar hoe wil je dat weergeven? Als een regeltje onder Geboortedatum en Geslacht?

[offtopic]
Rare premieverdeling hanteer je en wat nou als er een vrouw van 3 langskomt?
[/offtopic]
pi_76152449
quote:
Op maandag 28 december 2009 17:42 schreef kingjotte het volgende:

[..]

Wat is het regeltje om aan die 5 euro te komen, gegeven het geslacht en de leeftijd? Moet je dan niet ook de premieduur weten?

Als we het in een formule moeten vatten, zullen we toch eerst moeten weten wat de spelregels zijn.

Verder, wat is nou precies het gewenste resultaat? Je hebt het over automatisch 5,00 selecteren, maar hoe wil je dat weergeven? Als een regeltje onder Geboortedatum en Geslacht?

[offtopic]
Rare premieverdeling hanteer je en wat nou als er een vrouw van 3 langskomt?
[/offtopic]
Ja de premieverdeling heb ik anders ingevoerd omdat ik niet weet of ik die mag posten. Deze verdeling is zo als ik het gekregen, leeftijd vrouw begint bij 5 jaar.



Dus als de drie variabelen bekent zijn (geb.datum, geslacht en premieduur) dan selecteer Excel automatisch het gele vlak. Als een klant bij registratie dus zijn/haar geboortedatum, geslacht heeft ingevuld, dan hoeft de klant alleen nog te zeggen hoe lang ze de premie wil (premieduur). Dan komt er automatisch te staan hoe duur dat voor de klant is (prijs per maand). Daar wil ik dus die formule in gebruiken, ik heb de premieverdeling en als het mogelijk is dat het automatisch het goede vakje selecteerd zou dat er makkelijk zijn.
pi_76156314
Okee, niet schrikken, dit is hem:
quote:
=INDEX(prijzen;IF(geslacht="man";MATCH((YEAR(NOW())-YEAR(geboortedatum)+(MONTH(NOW())-MONTH(geboortedatum))/12+(DAY(NOW())-DAY(geboortedatum))/365);leeftijden_man);MATCH((YEAR(NOW())-YEAR(geboortedatum)+(MONTH(NOW())-MONTH(geboortedatum))/12+(DAY(NOW())-DAY(geboortedatum))/365);leeftijden_vrouw));MATCH(duur;premie_lengtes))
om het wat leesbaarder te maken heb ik even een extra veld "leeftijd" toegevoegd, dan ziet het er zo uit:
quote:
=INDEX(prijzen;IF(geslacht="man";MATCH(leeftijd;leeftijden_man);MATCH(leeftijd;leeftijden_vrouw));MATCH(duur;premie_lengtes))
ik heb alle relevante cellen (of cellranges) een naam gegeven, dit houdt je "code" ook wat beter onderhoudbaar.

Wat ik hier doe is het volgende: ik zoek in de range "prijzen" de goede cel op met INDEX
INDEX lust een range (prijzen), en een rijnummer en kolomnummer binnen die range
het kolomnummer (de laatste parameter) is het makkelijkst, want die is voor zowel mannen als vrouwen hetzelfde (namelijk afhankelijk van de duur van het contract) dus die zoeken we gewoon op met MATCH(duur;premie_lengtes)

Het rijnummer is iets lastiger, daarvoor hebben we naast MATCH ook nog IF nodig, om onderscheid te maken tussen mannetjes en vrouwtjes.

Ik hoop dat het zo een beetje duidelijk is, anders hoor ik het wel.
pi_76232076
Hoi all, ik maak mbv deze code een calendar aan:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Const SjabloonBladnaam As String = "Sjabloon"
Const WeekNummerCel As String = "B1"
Const DatumMaandag As String = "C2"

Public NieuweAgenda As Object

Sub MaakAgenda(Jaar As Long)
  Dim WeekNummer As Integer, DefaultSheets As Integer

  With Application
    'Haal de flikkering weg
    .ScreenUpdating = False

    'Zet het aantal sheets in nieuw workbook op 1
    DefaultSheets = .SheetsInNewWorkbook
    .SheetsInNewWorkbook = 1

    'Maak nieuw nieuwe agenda aan
    Set NieuweAgenda = .Workbooks.Add

    'weken van het jaar
    WeekNummer = ISOweeknum(DateSerial(Jaar, 1, 1))
    'Week 52/53
    If WeekNummer > 1 Then
      Call VulAgenda(WeekNummer, Jaar)
    End If
    'Week 1 -> 52/53
    For WeekNummer = 1 To ISOweeknum(DateSerial(Jaar, 12, 31))
      Call VulAgenda(WeekNummer, Jaar)
    Next

    'Opruimen
    .DisplayAlerts = False
    NieuweAgenda.Sheets(1).Delete
    NieuweAgenda.Sheets(1).Select
    'ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    .DisplayAlerts = True
    Set NieuweAgenda = Nothing
    .SheetsInNewWorkbook = DefaultSheets
    .ScreenUpdating = True
  End With
End Sub
Sub VulAgenda(WeekNummer As Integer, Jaar As Long)
  Dim Maandag As Date, SheetName As String

  Maandag = ISOweeknumNaarDatum(Jaar, WeekNummer)
  ThisWorkbook.Sheets(SjabloonBladnaam).Copy After:=NieuweAgenda.Sheets(NieuweAgenda.Sheets.Count)
  With NieuweAgenda.ActiveSheet
    SheetName = CStr(" Week " & WeekNummer)
    If SheetExists(NieuweAgenda, SheetName) Then SheetName = SheetName & "-"
    .Name = SheetName
    .Range(WeekNummerCel) = WeekNummer
    .Range(DatumMaandag) = Maandag
  End With
End Sub

Public Function ISOweeknumNaarDatum(ByVal Jaar As Integer, ByVal Week As Integer) As Date
  Dim Maandag As Date, Weeknum As Integer

  Maandag = EersteMaandagJaar(Jaar)
  Weeknum = ISOweeknum(Maandag)
  'If Weeknum = 53 Then Weeknum = 52
  ISOweeknumNaarDatum = ((Week - Weeknum) * 7) + Maandag
End Function

Public Function ISOweeknum(ByVal Datum As Date) As Integer
  ISOweeknum = DatePart("ww", Datum, vbMonday, vbFirstFourDays)
End Function

Private Function EersteMaandagJaar(ByVal Jaar As Integer) As Date
  Const DONDERDAG = 4
  Dim Nieuwjaar As Date, Weekdag As Integer

  Nieuwjaar = DateSerial(Jaar, 1, 1)
  Weekdag = DatePart("w", Nieuwjaar, vbMonday, vbFirstFourDays) - 1
  EersteMaandagJaar = Nieuwjaar - Weekdag
  If Weekdag > DONDERDAG Then EersteMaandagJaar = EersteMaandagJaar + 7
End Function

'SheetExists Function -> Bestaat de sheet al in het workbook
Private Function SheetExists(Book As Object, SheetName As String) As Boolean
'   Geeft TRUE als sheet bestaat in het actieve workbook
  On Error Resume Next
  Dim x As Object

  SheetExists = False
  Set x = Book.Sheets(SheetName)
  If Err = 0 Then SheetExists = True
  On Error GoTo 0
End Function


Nu is het probleem alleen dat nu ik die van 2010 wil maken, de weektelling niet klopt Maandag week is is geen 4 januari om een of andere reden, ziet iemand waarom ?

Week 53 is goed, maar dan begint week 1 op maandag 29-12 ?
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
  FOK!fossiel maandag 4 januari 2010 @ 14:53:11 #247
8443 cptmarco
it's captain...
pi_76399047
ik weet niet meer hoe de formule gaat...

Stel (voorbeeld puur voor de formule):
In kolom A staat onder elkaar:: AA20091 t/m AA2009100
In kolom B wil ik alleen maar het stuk na 'AA2009' hebben, dus 1 t/m 100

Via een mooie formule kun je het eerste gedeelte weglaten zodat alleen het laatste deel overblijft...
pi_76401151
=RIGHT(A1,LEN(A1)-6))
pi_76405214
Ik ben op dit moment bezig met een opdracht voor een bedrijf en daarvoor moet ik enorme hoeveelheden data verwerken.

Ik liep daarbij tegen het volgende probleem aan:

Ik gebruik Excel 2007 en wil een aantal pivot graphs maken van data bestaande uit meer dan 1,5 miljoen rijen. Omdat deze Excelversie per tabblad maar iets meer dan een miljoen rijen aan data kan herbergen, moest ik de data verdelen over twee tabbladen.

Nu wil ik voor de analyse van de data doormiddel van pivot tabels and graphs (draaitabellen en -grafieken) alle data selecteren in de pivot wizard, maar op een of andere manier lukt dat niet met de gebruikelijke scheidingstekens waarmee je een range over verschillende gebieden aangeeft, zoals de komma of punt-komma.

bv.

'TAB1'!A1:H3,'TAB2'!A1:H3 werkt niet.



Verder geeft de wizard ook geen mogelijkheid om meerdere ranges aan te geven. Op welke manier moet nu de data selecteren van de twee tabs? Zijn er andere operators voor dit soort situaties? Of moet ik iets met haakjes doen ofzo?

NB Wat aanvullende informatie: ja het aantal kolommen zijn aan elkaar gelijk en de kolommen hebben dezelfde titels (hoef of moet ik de titels trouwens maar 1 keer selecteren?)

[ Bericht 6% gewijzigd door M-Bozz op 04-01-2010 20:23:34 ]
-
  FOK!fossiel maandag 4 januari 2010 @ 18:26:38 #250
8443 cptmarco
it's captain...
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')