Toon posts:

excel karakters weglaten in formule

Pagina: 1
Acties:
  • 117 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Halllo,

Dis mijn eerste post. Ik was benieuwd of iemand mij kon helpen met het volgende.

Ik wil de de eerste karakters weglaten of de laatsten meenemen in het berekenen van een formule in excell. Is het mogelijk om dat in tabblad uitlijning in custom in te voeren?

Voorbeeld:

Ik wil de weken weten tussen 301 en 252.
301-252 wordt dan 01-52. Lees 301 als week 1 2003 en 252 is dan week 52 in 2002.

Excell telt tot 100, ik wil tot 52. Als ik deze formule weet zou cell=(01- 52)+ 52 met uitkomst 1 week komen.

Iemand die weet hoe je de eerste karakter weglaat of de laatste twee meeneemt? Een andere methode mag ook, liefst in excell. Regards..

scroll naar beneden aub.. er zit een fout in deze berekening..

[ Voor 5% gewijzigd door Verwijderd op 06-01-2004 19:11 ]


Verwijderd

Ik ben geen excel kenner maar als je naast je reeks weken nog een reeks zet vanaf 52 krijg je bij 53 1, bij 54 2 en etc. Deze kun je dan aftrekken, al is het niet de beste oplossing. Tis igg wat of een kick ;)

(Welkom op de GoT btw, lees effe de faq/forum/gedrags regels even goed door, groeten etc doen we nl niet of eingelijk standaard ;))

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Hoewel ik niet helemaal snap wat jij nou wilt, zal ik een pogin wagen:
ABC
1voorbeeld
2waarde 1301
3waarde 2252
4berekening=(RIGHT(B2;2)-RIGHT(B3;2))+52

De berekening levert bij mij dan het getal 2 op en ik neem aan dat dit is wat je wilt?

Verwijderd

Topicstarter
Ik wil weten het aantal weken verschil tussen twee waarden. De waarden staan als volgt opgegeven in mijn database:

voor 2002 het aantal weken: 201 t/m 252.
voor 2003 het aantal weken: 301 t/m 352

Ik heb een fout ontdekt in mn berekening. Punt is dat als je (01-52) doet je telt er 52 bij op krijg je wel 1 als uitkomst, maar dat gaat niet altijd op. Kijk maar:

(01-52)+ 52= wel 1 (dus 301 en 252). Maar bij (04-01)+ 52 krijg je als uitkomst 55 weken (lees 04 en 01 als 304 en 301). Terwijl tussen 301 en 304 maar 3 weken zit. Ik dacht door de eerste karakter er vanaf te halen ik het probleem zou kunnen verhelpen. Is dus niet zo.

Enfin wat ik wil is gewoon het aantal weken verschil tussen 302 en 251 bijvoorbeeld (3 weken).
Het probleem van excel is dat hij als je gewoon 302-251 doet hij altijd rekent met 100 maximum, in plaats van 52. Als uitkomst krijg je 53 (weken verschil, klopt dus niet want het verschil is maar 3 weken). Als ik op 1 of andere manier die grens van 52 kon vastleggen, en daarmee kon rekenen was ik een stuk verder.
Op zich kan ik ook wel niet alles selecteren, maar het moet functioneel zijn en dus toepasbaar zijn voor alle cellen. Is dat mogelijk in excel?


BVD..

[ Voor 13% gewijzigd door Verwijderd op 06-01-2004 19:32 ]


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

mum001, dan zou je toch uit de voeten kunnen met de formule welke ik hierboven als suggestie heb opgegeven als je het mij vraagt. In principe zou het nog handiger zijn als je op een andere manier de weken van de jaren registreerd, maar dat zou waarschijnlijk niet kunnen.

  • White Feather
  • Registratie: Januari 2000
  • Laatst online: 01:11
Je kunt dan toch zeggen dat als het resultaat uit de formule groter is dan 52, je er 52 vanaf haalt?

Verwijderd

Dit heet modulo(52) rekenen:
Stel in A1 staat je ene waarde en in A2 je tweede:

Formule:
=MOD(ABS(A1-A2),52)

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

@sternsel: dat werkt niet. Als A1 = 301 en A2 = 252 dan krijg je 49, en tussen week 1 van 2003 en week 52 van 2002 zit maar 1 week.

Kun je niet de velden omzetten naar een normale datum, die van elkaar aftrekken en dan door 7 delen?
Zo iets bedoel ik:
ABCDE
1301=left(a1;1)=right(a1;2)=1+(c1-1)*7)=date(b1;1;d1)
2252=left(a1;1)=right(a1;2)=1+(c1-1)*7)=date(b1;1;d1)
3=(e1-e2)/7

Je moet dan alleen nog even uitvissen of je een floor of een round wil doen op cel E3

Signatures zijn voor boomers.


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-06 23:37

Gé Brander

MS SQL Server

Verwijderd schreef op 07 januari 2004 @ 08:05:
Dit heet modulo(52) rekenen:
Stel in A1 staat je ene waarde en in A2 je tweede:

Formule:
=MOD(ABS(A1-A2),52)
Bij mij gaat deze vlieger niet op. Ik krijg de foutmelding dat er in de formule een fout zit, als ik ga zoeken in de help op mod dan krijg ik hulp over het commando rest. Wellicht omdat ik een nederlandse versie heb. Enig idee waar de fout zit?

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


Verwijderd

Topicstarter
woudloper:

yes klopt maar ik moet het ook voor andere weken doen.

Stel nu week 304 en 301. Gebruik jouw formule nog een keer.

Dan zie je dat er niet 3 uitkomt, maar 55.

mdeen:

nee dat kan ik niet helaas, bovendien zijn er meerdere datums in 1 week mogelijk?

[ Voor 29% gewijzigd door Verwijderd op 07-01-2004 08:32 ]


Verwijderd

Topicstarter
White Feather schreef op 07 januari 2004 @ 07:59:
Je kunt dan toch zeggen dat als het resultaat uit de formule groter is dan 52, je er 52 vanaf haalt?
Dit lijkt me wel iets. kzal eens puzzelen..

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

c70070540 schreef op 07 januari 2004 @ 08:19:
[...]

Bij mij gaat deze vlieger niet op. Ik krijg de foutmelding dat er in de formule een fout zit, als ik ga zoeken in de help op mod dan krijg ik hulp over het commando rest. Wellicht omdat ik een nederlandse versie heb. Enig idee waar de fout zit?
Je kunt twee fouten hebben: NL <-> UK versie waar de namen van formules anders zijn en de setting van je 'List separator' (en Regional Settings, Landinstellingen in het NL?). Mijn List separator staat op ; dus ik moet LEFT(A1;1) doen waar sternsel waarschijnlijk LEFT(A1,1) doet.

Ja, Excel is zeer uitwisselbaar. Het gaat eigenlijk alleen goed als je iemand een Excel bestandje toestuurt, intikken van formules is zeer land- en settingspecifiek.

Is er niet ergens op net 'Net een vertaalsite voor MS formules? Ik heb even met Google gezocht maar niks gevonden.

Signatures zijn voor boomers.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

Verwijderd schreef op 07 januari 2004 @ 08:24:
nee dat kan ik niet helaas.. :/
Wat kun je niet? Als ik 301 en 304 ingeef krijg ik netjes 3 (weken) uit. Bij 301 en 252 is het 1,14: (afgerond) 1 week.

Signatures zijn voor boomers.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

En met de suggesties van Woudloper en sternsel kom ik ook op deze oplossing:
A
1301
2252
3=MOD((RIGHT(A1;2)-RIGHT(A2;2));52)+((LEFT(A1;1)-LEFT(A2;1)-1)*52)

Deze oplossing wijkt na 6 jaar een week af van mijn eerste oplossing, dat mag mum001 zelf even uitvissen welke nu het goede antwoord geeft :P

Signatures zijn voor boomers.


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-06 23:37

Gé Brander

MS SQL Server

mdeen schreef op 07 januari 2004 @ 08:30:
[...]
Je kunt twee fouten hebben: NL <-> UK versie waar de namen van formules anders zijn en de setting van je 'List separator' (en Regional Settings, Landinstellingen in het NL?). Mijn List separator staat op ; dus ik moet LEFT(A1;1) doen waar sternsel waarschijnlijk LEFT(A1,1) doet.

Ja, Excel is zeer uitwisselbaar. Het gaat eigenlijk alleen goed als je iemand een Excel bestandje toestuurt, intikken van formules is zeer land- en settingspecifiek.

Is er niet ergens op net 'Net een vertaalsite voor MS formules? Ik heb even met Google gezocht maar niks gevonden.
Dank voor de hint. ; in plaats van , en REST in plaats van MOD deed het. Alleen was het niet de oplossing voor dit probleem omdat de uitkomst van 301 en 252 op 49 uitkomt, maar dat terzijde.

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-06 23:37

Gé Brander

MS SQL Server

mdeen schreef op 07 januari 2004 @ 08:43:
En met de suggesties van Woudloper en sternsel kom ik ook op deze oplossing:
A
1301
2252
3=MOD((RIGHT(A1;2)-RIGHT(A2;2));52)+((LEFT(A1;1)-LEFT(A2;1)-1)*52)

Deze oplossing wijkt na 6 jaar een week af van mijn eerste oplossing, dat mag mum001 zelf even uitvissen welke nu het goede antwoord geeft :P
Echt hopeloos dat ik dat dan weer moet vertalen naar:
code:
1
=REST((RECHTS(A1;2)-RECHTS(A2;2));52)+((LINKS(A1;1)-LINKS(A2;1)-1)*52)

Lang leve de taalinstellingen en aanpassingen in formules in Excel! :(

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

c70070540 schreef op 07 januari 2004 @ 08:48:
[...]

Echt hopeloos dat ik dat dan weer moet vertalen naar:
code:
1
=REST((RECHTS(A1;2)-RECHTS(A2;2));52)+((LINKS(A1;1)-LINKS(A2;1)-1)*52)

Lang leve de taalinstellingen en aanpassingen in formules in Excel! :(
En ik heb gemerkt dat de formule niet klopt. Bij 252 en 301 klopt het wel, bij 301 en 302 niet. Dus plug ik mijn originele oplossing nog maar eens >:)

Signatures zijn voor boomers.


Verwijderd

Na wat geknutsel denk ik dat het dit moet zijn:

=IF(B1>B2,IF(LEFT(B1,1)-LEFT(B2,1)=1,MOD(RIGHT(B1,2)-RIGHT(B2,2),52),MOD(RIGHT(B1,2)-RIGHT(B2,2),52)+(LEFT(B1,1)-LEFT(B2,1))*52),IF(RIGHT(B2,2)<RIGHT(B1,2),MOD(RIGHT(B2,2)-RIGHT(B1,2),52),MOD(RIGHT(B2,2)-RIGHT(B1,2),52)+(LEFT(B2,1)-LEFT(B1,1))*52))

Test met:
301,252=1

304,301=3

252,345=45

145,232=39

251,452=105

545,234=167

Zit vast nog wel iets scheef en echt duidelijk is het ook niet ;)

Verwijderd

Topicstarter
mdeen schreef op 07 januari 2004 @ 08:43:
En met de suggesties van Woudloper en sternsel kom ik ook op deze oplossing:
A
1301
2252
3=MOD((RIGHT(A1;2)-RIGHT(A2;2));52)+((LEFT(A1;1)-LEFT(A2;1)-1)*52)

Deze oplossing wijkt na 6 jaar een week af van mijn eerste oplossing, dat mag mum001 zelf even uitvissen welke nu het goede antwoord geeft :P
In jouw formule altijd de moet de tweede waarde van het vorige jaar zijn, probeer maar eens 302-301. Dan komt er -51 uit.

[ Voor 20% gewijzigd door Verwijderd op 07-01-2004 08:58 ]


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:18

Maasluip

Kabbelend watertje

Verwijderd schreef op 07 januari 2004 @ 08:57:
[...]


In jouw formule altijd de moet de tweede waarde van het vorige jaar zijn, probeer maar eens 302-301. Dan komt er -51 uit.
Yup, heb ik gemerkt, zie mijn reactie 1 minuut eerder dan jij ;)

Signatures zijn voor boomers.


Verwijderd

Topicstarter
Verwijderd schreef op 07 januari 2004 @ 08:57:
Na wat geknutsel denk ik dat het dit moet zijn:

=IF(B1>B2,IF(LEFT(B1,1)-LEFT(B2,1)=1,MOD(RIGHT(B1,2)-RIGHT(B2,2),52),MOD(RIGHT(B1,2)-RIGHT(B2,2),52)+(LEFT(B1,1)-LEFT(B2,1))*52),IF(RIGHT(B2,2)<RIGHT(B1,2),MOD(RIGHT(B2,2)-RIGHT(B1,2),52),MOD(RIGHT(B2,2)-RIGHT(B1,2),52)+(LEFT(B2,1)-LEFT(B1,1))*52))

Test met:
301,252=1

304,301=3

252,345=45

145,232=39

251,452=105

545,234=167

Zit vast nog wel iets scheef en echt duidelijk is het ook niet ;)
Ik zal eerlijk zijn, zoveel inzicht heb ik nog niet in excel (hij werkt wel). Ik heb wel een vraagje. Is het mogelijk dat als eerste waarde kleiner is dan de tweede waarde je dan met nul uitkomt? Zoals je het nu hebt heb je wel het verschil, wat op zich ook netjes is.

[ Voor 4% gewijzigd door Verwijderd op 07-01-2004 14:36 ]


  • ReallyStupidGuy
  • Registratie: Januari 2002
  • Laatst online: 01-09 13:13
AB
1302=AFRONDEN.NAAR.BENEDEN(A1/100;0)
2251=AFRONDEN.NAAR.BENEDEN(A2/100;0)
3=(A1-B1*100)-(A2-B2*100)+(B1-B2)*52
[/table]

Dit zou volgens mij ook moeten werken, als je wilt kun je de b kolom ook nog direct in de formule verwerken maar dan wordt de text ietsjes langer :)

@urbanus: Het probleem is dat hij hier geen standaard datum notatie gebruikt maar eigenlijk 52 decimaal :? (a la hexaal, hexadecimaal ect) telsysteem gebruikt om de weken te tellen. Dus:1,2,3,4,..,50,51,52,100,101,..

[ Voor 21% gewijzigd door ReallyStupidGuy op 07-01-2004 14:31 . Reden: Dirrect maar dan met 1 r :) ]

Duizend wijzen kunnen meer vragen stellen dan één idioot kan beantwoorden.


Verwijderd

In Excel zit standaard een mogelijkheid om met datums te rekenen.
Je kunt dit heel makkelijk vinden in de HELP van Excell zelf (F1)

Ik heb voor mijn werk deze bereken-methode toegepast om uit te rekenen hoeveel DAGEN iemand ziek is geweest. (startdatum en einddatum en Excell geeft het aantal tussenliggende dagen aan)

Als je die uitkomst in de naastgelegen cel laat delen door 7, ben je er volgens mij helemaal uit hoor.
Pagina: 1