Avatar billede visto Professor
14. januar 2022 - 05:27 Der er 18 kommentarer og
1 løsning

Forenkling af formel

I kolonne A indtastes en værdi for hver dag i året. En formel, der skal tælle, hvor mange hverdage (fem af ugens syv dage) denne værdi er mellem 6 og 8, ser sådan ud:
=TÆL.HVISER(A13:A17;">6";A13:A17;"<8")+TÆL.HVISER(A20:A24;">6";A20:A24;"<8")
Formlen for hele året kunne så bestå af 52 dele med plus imellem, ligesom ovenstående formel for to uger består af to dele med plus imellem.

Kan formlen skrives enklere, hvor princippet for en sådan forenkling kan illustreres sådan:
=TÆL.HVISER(A13:A17;A20:A24;">6";A13:A17;A20:A24;"<8")
?
Eller kan der laves en anden form for forenkling?
Avatar billede xl-Enthusiast Ekspert
14. januar 2022 - 08:01 #1
Hvor har du dine datoer. Hvad indeholder A13:A17 og hvad indeholderA20:A24. Har du ikke datoerne i ubrudt rækkefølge? i modsat fald er det besværligt. Er det antallet pr. uge af tal der er større end 6 og mindre end 8 du er ude efter?
Avatar billede ebea Ekspert
14. januar 2022 - 08:32 #2
Jeg tror at for at forstå logikken bag dit spørgsmål, at det nok var nemmere at spørge, hvad det er du vil tælle over hele året.
Prøv at fortælle på en lidt anden måde, hvad du vil tælle.
Avatar billede acore Ekspert
14. januar 2022 - 09:03 #3
Hvis du kan have datoen i kolonne B, kan du bruge:

=SUMPRODUKT(--(UGEDAG(B13:B376;2)<6);--($A$13:$A$376>6);--($A$13:$A$376<8))

Hvis du ikke har datoen, kan du i ovenstående formel erstatte:

WEEKDAY(B13:B376;2)<6

med

(MOD(ROWS(A13:$A$13)+3;7)+1)<6

hvor tallet 3 skal justeres op/ned hvis den første dato ikke er en fredag - altså for eksempel ret 3 til 4, hvis den første dato er en lørdag.

Hvis tallet i kolonne A er et heltal, kan formlerne forenkles yderligere.
Avatar billede acore Ekspert
14. januar 2022 - 09:54 #4
I #3 er funktionsnavnene delvist på engelsk - det skal rettes.
Avatar billede visto Professor
14. januar 2022 - 10:45 #5
Jeg prøver i første gang #3
=SUMPRODUKT(--(UGEDAG(B13:B376;2)<6);--($A$13:$A$376>6);--($A$13:$A$376<8))
som virker med intervallet >6 <8. Jeg har andre intervaller, der skal tjekkes end >6 <8; det ene (>4 <=6) virker også.
Men to af dem tæller forkert. Det ene er for <=4, hvor jeg har prøvet med
=SUMPRODUKT(--(UGEDAG(B13:B376;2)<6);--(A$13:$A$376<=4))
tæller en for lidt.
Den anden, som er for >=8, er helt gal. Den kommer ud med resultatet 251. Og da arket handler om 2020 og begynder 1. januar, er der jo slet ikke så mange indtastede observationer.

Jeg vil godt forstå, hvad der sker, så kan du fortælle mig, hvad "2" og "<6" handler om i UGEDAG(B13:B376;2)<6?
Avatar billede ebea Ekspert
14. januar 2022 - 11:24 #6
#5 - Er det forenklet ikke, at du skal tælle ugedage, med bestemt værdi i et range ?
Og da alle ugedage er fra 1 - 7, må det være dem du søger, eller ?
Og hvis det er tilfældet, er det så et samlet tæl, eller er tallene separat talte ?
Avatar billede visto Professor
14. januar 2022 - 11:39 #7
#6
Jeg forstår ikke hvad du skriver. Her kommer alle detaljerne:
For alle årets hverdage, som i mit tilfælde skal regnes fra søndag til og med torsdag, altså 5 dage hver uge, skal optælles hvor mange forekomster der i mit eksempel i kolonne A er i løbet af hele året 2022 henh. i intervallerne
<=4
>4 <=6
>6 <8
>=8
I mit oprindelige spørgsmål spurgte jeg for enkelhedens skyld kun til > 4 <=6

Hvis der på disse hverdage i løbet af året i de celler, der tælles på (i mit eksempel kolonne A) fx forekommer tallene 4,1 - 4,3 - 5 - 5,1 - 6, så skal optællingen vise 5, altså at der er 5 forekomster af tal i intervallet >4 <=6

Datoerne er ifølge eksemplerne ovenfor i kolonne B.
Avatar billede visto Professor
14. januar 2022 - 11:43 #8
Nej, jeg spurgte oprindeligt til intervallet >6 <8, bare for en ordens skyld.
Avatar billede madklub Guru
14. januar 2022 - 11:51 #9
Altså, du har en lang kolonne med tal.
Du vil gerne tælle hvordan tallene er fordelt inden for nogle intervaller.

Har jeg forstået det korrekt?
Avatar billede ebea Ekspert
14. januar 2022 - 11:52 #10
#7 - Det jeg mente var, at dine tal har jo ikke nødvendigvis nødt til at være talte ud fra kriteriet > eller <, men kan have talværdien, som ugedage har.

F.eks. i dit tilfælde du nævner i #7, kunne der tælles på en anden måde. Formlen herunder, ville give dig tallet 5, ud fra det du skriver. Dine tal du nævner, er 4, 5 og 6.

=SUM(TÆL.HVIS(B13:B372;{"=4";"=5";"=6"}))
Avatar billede visto Professor
14. januar 2022 - 11:59 #11
Det er ikke antallet af ugedage, der skal tælles. Det er de værdier, der optræder ud for de enkelte hverdage (i kolonne A). Disse tal er i øvrigt ikke heltal, men som nævnt i #7 kan de være decimaltal.
Enten er der noget af det, du skriver, som jeg slet ikke forstår. Eller også taler vi simpelthen forbi hinanden.
Avatar billede acore Ekspert
14. januar 2022 - 12:09 #12
Til #5:
UGEDAG returnerer hvilken dag i ugen en dato falder.

I
UGEDAG(B13:B376;2)<6

specificerer 2 at mandag returnerer 1, tirsdag 2 osv., og når det skal være mindre end 6, så er det mandag til fredag, der tælles med, men ikke lørdag og søndag. Se https://support.microsoft.com/en-us/office/weekday-function-60e44483-2ed1-439f-8bd0-e404c190949a

Der er måske en fejl ,når du skriver

=SUMPRODUKT(--(UGEDAG(B13:B376;2)<6);--(A$13:$A$376<=4))

Skal der ikke stå ">=4".
Avatar billede ebea Ekspert
14. januar 2022 - 12:13 #13
#11 - Ja, der er noget jeg ikke forstår i det du skriver, og omvendt ;-)
Men i dit udgangs spørgsmål skriver du, at du vil tælle "....En formel, der skal tælle, hvor mange hverdage (fem af ugens syv dage)".
Og alle ugedage har som jeg skrev, et tal f.eks. (>7 eller <8, kan jo kun være  tallet 7, og så fremdeles).

Var det ikke nemmere, at du uploadede et eks. på det du eksakt ønsker talt.
Avatar billede visto Professor
14. januar 2022 - 12:16 #14
Først lige #9, som er let at svare på:
Ja, det er rigtigt forstået.
Avatar billede visto Professor
14. januar 2022 - 12:21 #15
#13
Gerne.
Hvordan uploader jeg til eksperten?
Avatar billede acore Ekspert
14. januar 2022 - 12:22 #16
Hvis hverdag (ret usædvanligt) defineres som søndag til torsdag, så

<=4:
=SUMPRODUKT(--(UGEDAG(B13:B376;1)<6);--(A13:A376<=4)))

>4 <=6
=SUMPRODUKT(--(UGEDAG(B13:B376;1)<6);--(A13:A376>4);--(A13:A376<=6))

>6 <8
=SUMPRODUKT(--(UGEDAG(B13:B376;1)>6);--(A13:A376>6);--(A13:A376<8))

>=8
=SUMPRODUKT(--(UGEDAG(B13:B376;1)<6);--(A13:A376>=8))
Avatar billede ebea Ekspert
14. januar 2022 - 12:23 #17
#13 - Du kan ikke uploade til Eksperten.dk - Men du kan f.eks. bruge:  www.dropbox.com  hvor du uploader din fil, som der derefter genereres et link til, og det link kopierer du, og indsætter herinde. Så kan alle se din fil.
Avatar billede xl-Enthusiast Ekspert
14. januar 2022 - 12:58 #18
<=4:  =SUMPRODUKT(((UGEDAG(B13:B376;2)={7\1\2\3\4}))*(A13:A376<=4))

>4 og <=6: =SUMPRODUKT(((UGEDAG(B13:B376;2)={7\1\2\3\4}))*(A13:A376>4)*(A13:A376<=6))
       
>6 og <=8: =SUMPRODUKT(((UGEDAG(B13:B376;2)={7\1\2\3\4}))*(A13:A376>6)*(A13:A376<=8))

>8: =SUMPRODUCT(((UGEDAG(B13:B376;2)={7\1\2\3\4}))*(A13:A376>8))
Avatar billede visto Professor
14. januar 2022 - 14:04 #19
Mange tak for al respons.

Jeg har brugt løsningen fra #16 (hvor der vist er en UGEDAG(B13:B376;1)>6 der skal være UGEDAG(B13:B376;1)<6)
#18 ser også ud til at gøre det jeg efterspørger, men jeg nåede ikke at komme i gang med den, før jeg var langt inde i at afprøve #16.

Jeg har tilføjet "-" til celler uden indtastede værdier, hvilket muliggør, at indtastning af 0 bliver talt med til <=4 intervallet. (Uden "-" blev også de tomme celler talt med.) Og så har jeg sat en max-værdi for >=8 intervallet, for at undgå at cellerne med "-" bliver talt med her.

Jeg har uploadet et testark på
https://www.dropbox.com/scl/fi/bbgwiwgsu1y3pl5h8we8g/T-l-i-intervaller.xlsx?dl=0&rlkey=q3onklgzmkzhx8b7iwh3jyarc
hvor jeg har indtastet tal for januar, og hvor man både kan se min gamle løsning, der ville have resulteret i ekstremt lange formler, hvis jeg skulle gøre dem færdig, og man kan se den nye og dejligt korte løsning, som acore bidrog med.

Mange tak for hjælpen, som er virkelig værdsat.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester