startsida < företaget < organisera < datorer < tips
 
Datumkalkylering I

 
  Kalkylering
Kalkylering I
Kalkylering II
Kalkylering III
Kalkylering IV
Kalkylering V
Kalkylering VI
Kalkylering VII
Villkorsstyrd
kalkylering
Villkorsstyrd
formatering I
Villkorsstyrd
formatering II
Felhanterings-
kalkylering
Matriskalkylering I
Matriskalkylering II
Matriskalkylering III
Matriskalkylering IV
Matriskalkylering V
Datumkalkylering I
Datumkalkylering II
Datumkalkylering III
Datavalidering I
Datavalidering II
Cirkelreferenser
   
  Innehåll
expowera

 

Materialet publicerat med tillstånd från Dennis Wallentin.

Infoga datum
Infoga datum kan ske på flera sätt, t ex manuell inmatning eller mha NU-funktionen. Det snabbaste sättet är dock mha tangentbordskommandot: CTRL + Skift + Semikolon.

Kommandot genererar fasta värden, dvs till skillnad mot NU-funktionen uppdateras inte dessa automatiskt.

Datum kan också anges utan årtal, såsom 27/3. Men när denna datumtyp anges omvandlar XL det till ett internt datumformat, såsom 27 - mar. Kan man gå runt denna begränsning? Ja, genom att ange apostroftecknet före datumet, dvs '27/3 visas som 27/3. Datumangivelsen har XL dock omvandlat till ett textvärde.

Har man större område med datumangivelser, så kan man skapa ett eget datumformat: D/M.

Veckodag
M h a funktionen VECKODAG kan veckodagen erhållas för angivna datum. Funktionen returnerar ett tal mellan 1 - 7. För att få fram veckodag i text måste VECKODAG-funktionen kombineras med TEXT-funktionen. Önskas första bokstaven som versal får man infoga INITIAL-funktionen. Tabellen nedan visar exempel på det.

Ett enklare och snabbare sätt är att formatera cellerna med "DDDD". Vecko- dagens fullständiga namn erhålls då. Används formatet "DDD" erhålls förkortningen för veckodagen.

Antal veckodagar i en period
Vill du t ex veta hur många onsdagar det finns i en period? Om ja, så kan du titta närmare på detta exempel.

I nedanstående tabell visas hur antal onsdagar för maj månad beräknas.

Om man för funktionen VECKODAG inte anger någon "returtyp" så utgår XL från att Söndag är veckodag 1 och Måndag följaktligen är 2 osv. I Exemplet anges "4" för att beräkningen av datumserien ska generera rätt antal förekomster av "Onsdagar". N-funktionen genererar antal numeriska 1:or som ska summeras.

OBS: För att t ex få fram antal Lördagar för perioden måste startdatumet anges till 1999-04-30.

Om den underliggande datumserien (t ex 1999-05-01 t o m 1999-05-30) visas i sin helhet så kan följande formel lösa problemet:

  • {=SUMMA(N(VECKODAG(A9:A39)=4))}

Vill man t ex beräkna antal onsdagar för ett helt år så kan följande formel lösa det:

  • {=SUMMA(((VECKODAG(DATUM(A10;1;1)+RAD(1:365)-1))=4)*1)}

Årtalet måste anges som t ex 1999. Är det skottår ersätts faktorn 365 med 366.

Veckonummer
XL levereras med tillägget "Analysis Toolpak". I den ingår bl a en funktion för beräkning av veckonummer, VECKONR. Den fungerar inte för svenska förhållanden och ger helt enkelt felaktiga veckonummer.

I tabellen nedan visas den tekniska lösningen på problemet. Den är komplex men å andra sidan ger den korrekt veckonummer.

En "enklare" formel är:

  • =HELTAL((A1-SUMMA(REST(DATUM(ÅR(A1-REST
    (A1-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)

Tycker du fortfarande att det är för hög komplexitet i formelkonstruktionen så kan du använda nedanstående enklare formel. Dock kan den visa fel vid årsskiften.

  • =OM(VECKONR(A2-7;2)>52;1;VECKONR(A2-7;2))

Funktionen VECKONUMMER i R-verktyg gör att du slipper hålla på med komplexa formler.

Veckodagserier
Händer det att du sitter och skapar veckoscheman mm och som du upplever är tidskrävande?

Att skapa egna veckoserier består av ett antal steg:

Steg 1: Skapa ett startdatum, t ex för en måndag.
Steg 2: Skapa nedanstående formel för resterande del av serien.
Steg 3: Datumformatera serien för att erhålla datum.

Formeln utvärderar det angivna startdatumet i form av veckodag. Om veckodag är lördag eller söndag adderas datumvärdet med 3. Om påståendet är falskt adderas 1 till datumvärdet.

Månad
För att få fram vilken månad ett specifikt datum har kan man tänka sig att använda MÅNAD-funktionen men icke! Den returnerar bara t ex "1" för Januari. Varför funktionen gör det förklaras utförligt i artikel Q129073. Ett sätt att gå runt denna begränsning är att enbart använda sig av TEXT-funktionen. Det går bra att kombinera INITIAL-funktionen med TEXT-funktionen. Se exemplet i nedan- stående tabell.

Ett enklare och snabbare förfaringssätt är att formatera en cell med "MMMM" (månadens fullständiga namn erhålls då) och referera till cellen med datum- angivelsen. Används formatet "MMM" erhålls förkortningen för månaden.

Antal månader
OK, att räkna fram förekomsten av månader är inte vanligt förekommande men det kan ändå vara av allmänt intresse att studera tekniken bakom det.

Utgångspunkten är här en matrisformel, där en utvärdering av en endimensionell matris sker. M ha funktionen MÅNAD erhålls respektive datumposts månads- tillhörighet, och som sedan utvärderas mot villkoret. I exemplet utgörs villkoret av 2, dvs februari månad. Multiplikation med talet 1 sker för att konvertera text till tal. Därefter sker summering. 

Upp
Senast uppdaterad: 2005-10-05 © Dennis Wallentin