20. december 2015 - 12:15Der er
27 kommentarer og 1 løsning
Hvorfor skal WEEKDAY bruges sådan
Jeg vil prøve at lave en conditional formatting i min Excel 2010, men jeg synes ikke den opfører sig særligt pænt Jeg har en kolonne med datoer og så laver jeg en formel der hedder =WEEKDAY(ROW())=2 det giver det resultat at alle søndage bliver markeret, men ifølge al den dokumentation jeg har fundet på funktionen så burde 2 være lig med mandag
Du kan jo prøve at sætte din formel sådan her: =WEEKDAY(ROW()) Og kopiere ned over rækken, og så se hvad tal du får. Og hvis du laver formlen sådan her: =WEEKDAY(A1) og kopierer nedad som før, så får du andre tal end i det første eksempel.
Uden at vide det nøjagtigt, vil jeg tro at det har at gøre med, hvor du har startet din dato række.
For lidt uddybning, er det msåke nemmere at forstå sådan her. Din dato start i f.eks C1
=WEEKDAY(ROW()) indsat i B1 vil give ugedag tallet 1, da den starter der med dato (og ikke kender din dato).
=WEEKDAY(C1) med markeret celle reference (C1), indsat i A1 vil give ugedag nr. ud fra dato i cellen, da den netop refererer til en specifik dato i cellen (A1).
Så når du skriver =WEEKDAY(ROW())=2 oppe fra række 1, så vil det være falsk. Men skriver du =WEEKDAY(ROW())=1 vil det være sandt, da dato starter der som nr. 1
Men som jeg skrev i første indlæg, så ved jeg ikke hvor din dato starter.
Den første dato jeg har står i celle B3 Formateringen gælder for området =$A$3:$O$1100 Skriver jeg =WEEKDAY(ROW())=2 som formel, så bliver alle søndage markeret med rødt i mit tilfælde.
Men det er da lidt mærkeligt at det giver 2 forskellige resultater om man skriver =WEEKDAY(ROW()) eller =WEEKDAY(A3) Den sidste kan jo ikke rigtig bruges i en formel til betinget formattering så vidt jeg kan se
Prøv at indtaste følgende: A1: =28-02-1900 A2: =A1+1 og kopier denne celle til A3
Formater cellerne som General og du vil se 59, 60 og 61.
Altså skulle der have været en "29-02-1900", men det er ikke korrekt. 1900 var ikke et skudår og sidste dag i februar år 1900 var dermed den 28-02. At Excel antager, at 1900 var et skudår skulle angiveligt være af kompabilitetshensyn til Lotus 1-2-3 der var bygget på denne forkerte antaglse.
#6 - hvorfor er WEEKDAY() ikke noget værd i en betinget formatering. Den første dato jeg bruger i dette tilfælde er 1-12-2014 så 1904 kalenderen burde ikke give problemer. (Options-Advanced-Use 1904 calendar system)
#7 - at =IF(WEEKDAY(A3)=2) giver True/False er sådan set det jeg er ude efter for at kunne bruge det i en betinget formatering. Det er sat ind som en funktion der skal være True for at formatere en linie i mit ark
Men hvor om alting er så er jeg åben for forslag til hvordan jeg så får mit ark til at vise en markering ved hver linie hvor dagen er en søndag.
@hugopedersen! - det oprindelige spørgsmål (#1) var lidt tricky at forstå, da du jo egentlig havde svaret selv med hensyn til formateringen, og som virker som du angav, når du markerer området du bruger den på; men #13 gav lidt mere klarhed (for mig) hvad du mente.
Omkring det om det var en finurlighed i MS, har du selv givet en 1/3 svar på, ved at skrive i #13, at du bruger Excel dato system 1904. StoreMorten gav dig det rigtige svar i #14 for brug i 1904 dato systemet, og dermed den anden trediedel af svaret, og jeg skrev i #15, den sidste trediedel af svaret, ved at bruge 1900 dato systemet.
Så den betingede formaterings formel har du selv.
Og finurligheden er de 2 dato systemer, som giver 1 dags forskel. 1900 dato system: =WEEKDAY(B1)=1 1904 dato system: =WEEKDAY(B1)=2 Og så marker området som formlen skal dække!
#17 Jeg har nok ikke været helt klar angående 1904 dato systemet. Det bruger jeg nemlig ikke.
#15 - hvis jeg skriver =WEEKDAY(B11..B1108)=1 så får jeg kun farvet i kolonne A og ikke hele række som jeg gerne vil. (B11 til B1108 er nyt område med datoer i) det gør jeg til gengæld med =WEEKDAY(ROW();11)=2
Jeg må åbenbart bare acceptere at jeg ikke skal sætte det tal in som jeg havde forventet for at det virker.
Hvis du markerer det område (træk musen nedover) hvor du skal have farvning af Søndag (B11:B1108) - så vælg Conditional formatting, og use formula, og så indsæt =WEEKDAY(B11)=1 som formel, hvis du bruger 1900 dato system (ellers =2 i 1904). Det skulle give dig en markering af hver søndag i kolonnen B, i det område som du har markeret.
#19 - det markerer ikke hele linien men kun 1 felt. Jeg vil have hele linien til at blive rød (i mit tilfælde) Det får jeg hvis jeg indsætter formelen =WEEKDAY(ROW();11)=2 til gælde i hele mit område som er A11 til P1108
Du skal ikke bruge: =WEEKDAY(ROW()) bruger række nummeret fra cellen
Du skal bruge kolonnen med datoen.
Eks. med datoer i kolonne B
Marker A11:F11 (kun 1 række, så lang ud, du har brug for, her A til F) Betinget formatering --> Brug en formel til at bestemme..... Indsæt formlen: =UGEDAG($B11;2)=1 Vælg fyldfarve Tryk der efter: OK
Bem. sidst i formlen er et 1 tal= mandage farves Ret til 2 tal= tirsdage farves
Udvid formateringen:
Med markering af A11 til F11, tryk på formatpensel og marker B1:F376 (Her et hel år ned)
Eller: Kopier A11:F11 Marker A11:F376 Indsæt speciel, flyt markering indsæt: Alt til Formater Tryk der efter: OK
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.