abonnement Unibet Coolblue
pi_95022861
Ik heb een voor jullie wellicht makkelijke vraag:

Ik zoek een formule voor het volgedende:

Als de waarde (tekst) in cel P7 gelijk is aan "Piet B.V." of "Kees B.V." dan wil ik dat de gegevens van cel C7 worden overgenomen.

Ik was met de ALS formule begonnen, maar krijg het niet voor elkaar... misschien een andere formule ?

Alvast bedankt !
pi_95024365
quote:
1s.gif Op zondag 3 april 2011 10:41 schreef qu63 het volgende:

[..]

Die tip van Hendrik gooit een of meerdere $'s in je formule.
en daarmee zet je de celverwijzing vast.

stel in cel B1 heb je een formule staan =2*A1

als je deze dan kopieert naar cel C2 wordt de formule = 2*B2 (verwijzing schuift mee)

Zet je in B1 echter =2*$A$1 en kopieer je die naar C2 dan blijft de formule =2*$A$1.
Zet je in B1 echter =2*$A1 en kopieer je die naar C2 dan wordt de formule =2*$A2. (dus het rijnummer verschuift mee)
Zet je in B1 echter =2*A$1 en kopieer je die naar C2 dan wordt de formule =2*B$1. (dus het kolomnummer verschuift mee)
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95024412
quote:
1s.gif Op maandag 4 april 2011 14:33 schreef PAYPROF het volgende:
Ik heb een voor jullie wellicht makkelijke vraag:

Ik zoek een formule voor het volgedende:

Als de waarde (tekst) in cel P7 gelijk is aan "Piet B.V." of "Kees B.V." dan wil ik dat de gegevens van cel C7 worden overgenomen.

Ik was met de ALS formule begonnen, maar krijg het niet voor elkaar... misschien een andere formule ?

Alvast bedankt !
=als(of(P7="Piet B.V.";P7="Kees B.V.");C7;"")
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95026932
Dank je wel,hier was ik idd naar op zoek.

Heb er nog een...

Ik wil graag de duur van een dienst uitrekenen, maar een nachtdienst pakt excel niet om reden dat het dan negatief rekent. enig idee hoe dit op te lossen ?

8:30 17:00 = 8:30
22:45 7:00 = ######

van 22.45 tot 7 zou hij dus als uitkomst 8.15 weer moeten geven.

Alvast bedankt
pi_95028492
stel in A1 de starttijd en in B1 de eindtijd

berekeningsformule: =IF(B1<A1,1-A1+B1,B1-A1)
celformat van de berekening even aanpassen naar tijd en klaar ben je
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95029974
geweldig!

nog 1 mbt een range voor onregelmatigheidsdiensten:

van maandag 0.00 uur tm vrijdag 0.00 uur aan het einde van de dienst ORT uren berekenen.
vervolgens op zaterdag de uren en op zondag de uren
ORT op werkdagen is van 6 to 8 in de ochtend en van 18 tot 22 uur in de avond
op Zaterdag gehele dag ORT volgens x percentage en op zondag gehele dag ORT volgens x percentage.

dus als de eindtijd van een dienst van maandag op dinsdag eindigt om 7 uur dan krijgt de medewerker 1 uur ORT op doordeweekse werkdag.

Als de dienst op vrijdagavond begint om 22.45 uur en duurt tot zaterdag ochtend 7 uur, krijgt de medewerker 7 uur ORT op zaterdag

Begint de dienst op zaterdag om 22.45 uur tot zondag ochtend 7 uur, dan krijgt de medewerker 1.25 uur ORT op zaterdag en 7 uur ORT op zondag

en zo ook als de diensten eindigen tussen 18 en 22 uur...

ideetje hoe dit aan te pakken ?
pi_95050817
zie bijvoegd plaatje.

Ik wil uit een rooster voor leraren, per leraar zijn of haar klassen en vakken halen.

Invoer is wat ik binnenkrijg, en uitvoer is hoe het er uit moet komen te zien.


Kan ik dat met een formule doen, of zijn er macro's hiervoor?
Of iets anders?
Overpeinzingen van een erfgenaam van de Che Guevara gedachte
pi_95059707
ik zou voor een database toepassing gaan.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95060019
quote:
1s.gif Op maandag 4 april 2011 17:20 schreef PAYPROF het volgende:
geweldig!

nog 1 mbt een range voor onregelmatigheidsdiensten:

van maandag 0.00 uur tm vrijdag 0.00 uur aan het einde van de dienst ORT uren berekenen.
vervolgens op zaterdag de uren en op zondag de uren
ORT op werkdagen is van 6 to 8 in de ochtend en van 18 tot 22 uur in de avond
op Zaterdag gehele dag ORT volgens x percentage en op zondag gehele dag ORT volgens x percentage.

dus als de eindtijd van een dienst van maandag op dinsdag eindigt om 7 uur dan krijgt de medewerker 1 uur ORT op doordeweekse werkdag.

Als de dienst op vrijdagavond begint om 22.45 uur en duurt tot zaterdag ochtend 7 uur, krijgt de medewerker 7 uur ORT op zaterdag

Begint de dienst op zaterdag om 22.45 uur tot zondag ochtend 7 uur, dan krijgt de medewerker 1.25 uur ORT op zaterdag en 7 uur ORT op zondag

en zo ook als de diensten eindigen tussen 18 en 22 uur...

ideetje hoe dit aan te pakken ?
Hiervoor heb je in ieder geval de datum nodig. Het mooiste zou zijn dat in zowel begin als eindtijd zowel de datum als de tijd staat: dd-mm-yyyy hh:mm. Als je deze notatie gebruikt kun je de eind en begintijd altijd zo van elkaar af trekken (dan vervalt dus de vorige IF functie)
De dag van de week bepaal je door de functie: =weekday(A1,2) dan is maandag 1 en zondag 7.
in A2 heb je de start datum en tijd en in B2 de einddatum en tijd. De zaterdag/zondag ORT bereken je dan als volgt:

=IF(OR(WEEKDAY(A2,2)=6,WEEKDAY(A2,2)=7),1-MOD(A2,1),0)+IF(OR(WEEKDAY(B2,2)=6,WEEKDAY(B2,2)=7),MOD(B2,1),0)

WEEKDAY bepaalt de dag van de week (,2) betekent maandag = 1 en zondag = 7
MOD bepaalt het restant als je hebt gedeeld door (in dit geval) 1 dus het aantal uren van de dag.
De eerste IF kijkt of de begindag een zaterdag of zondag is en bepaald dan hoeveel uren er gewerkt is vanaf de starttijd tot 0:00.
De tweede IF kijkt of de einddag een zaterdag of zondag is en berekent hoeveel uren er die dag is gewerkt.

De andere dagen moet je maar even zelf uitzoeken. Deze functie kan op de plek waar nu de 0 staat aan het einde van de IF functies.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95060500
Bedankt, ik ga vandaag eens kijken of ik het voor elkaar krijg !
pi_95121442
Ziet iemand de fout in dit script? Ik wil een voorwaardelijke opmaak voor meer dan 3 voorwaarden.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
With c
Select Case .Value
Case Is = "rv"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
Case Is = "av"
.Font.ColorIndex = 2
.Interior.ColorIndex = 28
Case Is = "5110a"
.Interior.ColorIndex = 1
Case Is = "5122a"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
Case Is = "5123a"
.Font.ColorIndex = 5
.Interior.ColorIndex = 28
Case Is = "5124a"
.Interior.ColorIndex = 1
Case Is = "5125a"
.Font.ColorIndex = 2
.Interior.ColorIndex = 5
Case Is = "5126a"
.Font.ColorIndex = 2
.Interior.ColorIndex = 4
Case Is = "5128a"
.Interior.ColorIndex = 1
Case Is = "" 'cel leeg gemaakt
.Font.ColorIndex = 0
.Interior.ColorIndex = xlNone
Case Else
.Interior.ColorIndex = xlNone
End Select
End With
Next c
End Sub
pi_95123877
Hoi,

Ik ben al een heel eind met de ORT, maar op werkdagen zoek ik nog naar een formule voor een tijdspanne.
Dus als de uren van de dienst voorkomen in de range tussen 22 uur en 6 uur 's ochtends dan die betreffende aantal uren berekenen. datum en tijd zijn inmiddels samengevoegd in 1 cel.

voorbeeld: een dienst begint om 22.45 uur en eindigt om 7 uur 's ochtends = 7.15 uur ORT (1.15+6)
een dienst begint om 21.00 uur en eindigt om 5 uur 's ochtends = 7 uur ORT (2+5)

Ik hoop dat je me kunt helpen
pi_95124945
Hai, excel leek hier :@

Ik heb 2 tabbladen met data: ced_users & sheet1.

Op beide staan data met de volgende colommen: voornaam/achternaam/tweede voornaam/toestel/telefoon/e-mail.

Nu wil ik beide tabbladen vergelijken met elkaar. Dus ik wil een lijstje met namen die wel op a staan, maar niet op b en omgekeerd.

En eigenlijk wil ik het liefst ook weten hoe ik excel kan laten controleren of er op tabblad ced_users lege velden zijn en deze laten vullen met data van sheet1.

En nu heb ik eigenlijk maar 1 vraag: hoe pak ik dit aan? :@

excel 2007, engelse taal
pi_95125908
'Expand my brain, learning juice!'
&lt;a href="http://www.last.fm/user/crossover1" rel="nofollow" target="_blank"&gt;Last.fm&lt;/a&gt;
pi_95126061
Ik loop vast als ik die code uit dat artikel moet ombouwen naar een code die ik wil gebruiken :@ :@
  woensdag 6 april 2011 @ 17:09:10 #216
62215 qu63
..de tijd drinkt..
pi_95126213
quote:
1s.gif Op woensdag 6 april 2011 15:15 schreef Goldfish80 het volgende:
Ziet iemand de fout in dit script? Ik wil een voorwaardelijke opmaak voor meer dan 3 voorwaarden.

[knip]
Moet dat per se met VB?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 6 april 2011 @ 17:12:05 #217
62215 qu63
..de tijd drinkt..
pi_95126332
quote:
1s.gif Op woensdag 6 april 2011 17:05 schreef Puala het volgende:
Ik loop vast als ik die code uit dat artikel moet ombouwen naar een code die ik wil gebruiken :@ :@
Wat gaat er mis dan?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_95126360
MBT ORT heb ik inmiddels het volgende in elkaar weten te zetten, afzonderlijk werken ze goed dus ik kan ze eventueel opnemen in 2 aparte kolommen voor de resultaten, maar weet iemand hoe ik deze 2 formules samen kan voegen zodat ik maar 1 kolom nodig heb ??

als dienst van ma tm vr voor 22 uur begint voor ORT 22-06
=ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");(OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr"));AX11<22;AY11>0;AR11<AU11);1-REST(BN$1;1))+ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");(OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr"));AX11<22;AY11>0;AY11<6;AR11<AU11);1-REST(24-E11;1);0)+ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");(OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr"));AX11<22;AY11>0;AY11>6;AR11<AU11);1-REST(24-$BN$2;1);0)

als dienst van ma tm vr na 22 uur begint voor ORT 22-06
=ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr");AX11>22;AY11>0;AY11>6);1-REST(24-$BN$2;1);0)+ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr");AX11>22;AY11>0;AY11<6);1-REST(24-E11;1);0)+
ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");(OF($AU10="ma";AU11="di";AU10="wo";AU11="do";AU11="vr"));AX11>22;AY11>0);1-REST(C11;1);0)
pi_95126405
quote:
1s.gif Op woensdag 6 april 2011 17:12 schreef qu63 het volgende:

[..]

Wat gaat er mis dan?
Ik weet niet wat ik hier in moet vullen: (cell to match,cells to match with,0)),"",cell to match)

Ik ga namelijk van tabblad 1 naar tabblad 2 en ik snap niet wat ik dan in moet vullen..
pi_95134304
Goldfish
Je moet hem niet in Workbook_Sheetchange zetten maar in Worksheet_change

dus
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
With c
Select Case .Value

Daarnaast kan je Case Is = "rv" ombouwen tot
1
2
3
4
5
Select Case .Value

Case "rv"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
etc

Het werkt hetzelfde en is korter.

En je kan dit deel
1
2
3
Dim c As Range
For Each c In Target.Cells
With c
omzetten in
1With Target
Let erop dat je aan het eind ook Next c weghaalt.
Je kan dan alleen niet meer meerdere cellen tegelijk iets in plaatsen, dus als dat je bedoeling was dan moet je het gewoon zo laten natuurlijk!

Succes.
pi_95136838
PAYPROF:
1ALS(EN(OF($AR11="ma";AR11="di";AR11="wo";AR11="do";AR11="vr");OF($AU11="ma";AU11="di";AU11="wo";AU11="do";AU11="vr")
Kan je herschrijven.
Stel in A1:A5 staat ma/di/wo/do/vr
1=IF(SUM(--(AR11:AU11=A1:A5))>0;1;0)
Bevestigen met Ctrl-Shift-Enter
Dat ruimt dan al een heel stuk op ;)
Wel even vertalen!!

Ik denk dat je ook een stuk kunt winnen door dit stukje:
AX11<22;AY11>0;AR11<AU11
buiten de formule haalt.
Maw je test al direct of dit waar is (er wordt 4x op getest!) en zo niet dan FALSE.

En nu doet mn hoofd pijn van je formule :')

Als je hem even herschrijft gewoon zo dat er A1, B1 etc staat dan kan ik het ook toepassen op een eigen sheet, dat werkt gemakkelijker.
pi_95176154
quote:
1s.gif Op woensdag 6 april 2011 17:09 schreef qu63 het volgende:

[..]

Moet dat per se met VB?
Ja, anders kun je maar 3 voorwaarden gebruiken.
pi_95208895
PAYPROF:
Ik heb er nog eens naar gekeken maar om het in een formule te krijgen wordt erg ingewikkeld.
Je kunt daarom beter een functie definieren in visual basic die alle checks voor je doet. Gelukkig is het op vrijdag wel rustig dus heb ik het al voor je gedaan

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Function ORT(start, eind)

dagA = Application.WorksheetFunction.Weekday(start, 2)
dagZ = Application.WorksheetFunction.Weekday(eind, 2)
tijdA = Hour(start) + Minute(start) / 60
tijdZ = Hour(eind) + Minute(eind) / 60

'Uitgangspunten
'zaterdag en zondag is hele dag ORT
'doordeweekse tijdgrenzen OD=6:00, ND=22:00
OD = 6
ND = 22

'check of start en einddatum wel goed zijn ingevuld
If start > eind Then
    ORT = "Starttijd later dan eindtijd"
    Exit Function
End If

'langer dan 24 uur werken mag niet
If eind - start > 1 Then
    ORT = "Werktijd langer dan 24 uur"
    Exit Function
End If

Select Case dagA
Case 1 To 4
    If dagZ = dagA Then
        If tijdA <= OD Then
            If tijdZ <= ND Then
                ORT = (OD - tijdA) / 24
            Else
                ORT = (OD - tijdA + tijdZ - ND) / 24
            End If
        Else
            If tijdA >= ND Then
                ORT = (tijdZ - tijdA) / 24
            Else
                If tijdZ > ND Then
                    ORT = (tijdZ - ND) / 24
                Else
                    ORT = 0
                End If
            End If
        End If
    Else
        If tijdA <= OD Then
            If tijdZ <= OD Then
                ORT = (OD - tijdA + 2 + tijdZ) / 24
            Else
                ORT = (OD - tijdA + 24 - ND + OD) / 24
            End If
        Else
            If tijdA >= ND Then
                If tijdZ <= OD Then
                    ORT = (24 - tijdA + tijdZ) / 24
                Else
                    ORT = (24 - tijdA + OD) / 24
                End If
            Else
                If tijdZ <= OD Then
                    ORT = (24 - ND + tijdZ) / 24
                Else
                    ORT = (24 - ND + OD) / 24
                End If
            End If
        End If
    End If

Case 5
    If dagZ = dagA Then
        If tijdA <= OD Then
            If tijdZ <= ND Then
                ORT = (OD - tijdA) / 24
            Else
                ORT = (OD - tijdA + tijdZ - ND) / 24
            End If
        Else
            If tijdA >= ND Then
                ORT = (tijdZ - tijdA) / 24
            Else
                If tijdZ > ND Then
                    ORT = (tijdZ - ND) / 24
                Else
                    ORT = 0
                End If
            End If
        End If
    Else
        If tijdA <= OD Then
            ORT = (OD - tijdA + 24 - ND + tijdZ) / 24
        Else
            If tijdA >= ND Then
                ORT = (24 - tijdA + tijdZ) / 24
            Else
                ORT = (24 - ND + tijdZ) / 24
            End If
        End If
    End If

Case OD
    ORT = eind - start

Case 7
    If dagZ = dagA Then
        ORT = eind - start
    Else
        If tijdZ > OD Then
            ORT = (24 - tijdA + OD) / 24
        Else
            ORT = (24 - tijdA + tijdZ) / 24
        End If
    End If
       
End Select

End Function
Bovenstaande code plak je in een visual basic module. Vervolgens kun je in die spreadsheet de functie aanroepen door in een cel het volgende te typen =ORT(A2,B2) waarbij A2 de cel is met begin datum en tijd en B2 de cel met einddatum en tijd.

Het voordeel is dat je het visual basic deel kunt vergrendelen en aanpassingen in de functie een stuk eenvoudiger zijn. In de spreadsheet zie je vervolgens ook alleen een functie ORT staan en geen hele onoverichtelijke brei van IF's.

[ Bericht 1% gewijzigd door Deetch op 08-04-2011 10:41:58 ]
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_95210749
ok... dank je wel, maar de ORT moet ook nog eens opgesplitst worden per kolom omdat er verschillende percentages/bedragen aanhangen.

ma tm vrij 06-08 uur (aan het einde van een dienst) 3.24 euro
ma tm vrij 18-22 uur (niet perse aan het einde van de dienst) 3.24 euro
ma tm vrij 22-06 uur (niet perse aan het einde van de dienst 6.49 euro
Zaterdag 00-24 uur 6.49 euro
Zondagen 00-24 uur 10.54 euro

overigens krijg ik in de cel als resultaat #naam? te zien, moet ik in VB ook de functies naar het Nederlands vertalen misschien ? en waar je , hebt gebruikt moet ik ; neerzetten heb ik gemerkt, ook dat in VB aanpassen ?
pi_95215633
Ik denk dat je alleen de weekday in het begin moet veranderen in weekdag. De rest van de functies zijn vba functies dus die hoef je niet te vertalen.

In de macro worden alle verschillende tijdblokken apart berekend (even goed zoeken in de code zoeken waar, wat en welke dat is) daar kun je dan ook nog een bedrag aan koppelen.

VB werkt gewoon met , daar hoef je dus geen ; van te maken.

Ik zie overigens wel dat ik het doordeweekse blok van 18-22 ben vergeten. Die kun je op vergelijkbare wijze toevoegen in het deel case 1 to 4 en case 5.

Probeer eerst zelf maar eens de code te doorgronden, dan kun je waarschijnlijk de meeste aanpassingen zelf wel doen.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')