Avatar billede JJ77 Juniormester
20. oktober 2022 - 15:19 Der er 18 kommentarer og
2 løsninger

Middel funktion virker ikke på dynamiske felter i Excel

Jeg har to felter (D2, F2) i et excelark, som henter det første tal fra to andre celler:

Celle D2 har følgende formel:  =VENSTRE(C2;1)
Celle F2 har følgende formel:  =VENSTRE(E2;1)

Jeg forsøger så efterfølgende at beregne gennemsnittet for de to felter D2 og F2, men her får jeg følgende fejl "#DIVISION/0!".

Jeg forsøger at beregne gennemsnittet med følgende formel i celle B2:  =MIDDEL(D2;F2)

Jeg kan simpelthen ikke gennemskue hvorfor Excel ikke vil/kan beregne gennemsnittet? Håber her er nogle som kender til en løsning på problemet.
Avatar billede xl-Enthusiast Ekspert
20. oktober 2022 - 15:26 #1
Prøv at ændre dine formler i D2 og F2 til:

D2: =--VENSTRE(C2;1)
E2: =--VENSRE(E2;1)
Avatar billede JJ77 Juniormester
21. oktober 2022 - 08:31 #2
@xl-Enthusiast: det virker, så tak for det :-)

Kan du forklare mig hvad det er de to streger gør?
Avatar billede JJ77 Juniormester
21. oktober 2022 - 08:41 #3
@xl-Enthusiast: opdagede lige at der faktisk stadig er et problem..

D2: =--VENSTRE(C2;1)

Hvis der i C2 cellen på plads 1 ikke er et tal, men et bogstav bliver resultatet i D2 #VÆRDI! og så kan excel pludselig ikke udregne gennemsnit længere hvis bare én af cellerne har #VÆRDI!...

Nogle af de celler som der skal beregnes gennemsnit på kan indeholde tekst og dette plejer gennemsnit funktionen godt at kunne frasortere automatisk.
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 09:15 #4
Det er noget rod, undskyld mig, at have en blanding af tekst og tal i celler, du vil beregne gennemsnittet af. Hvorfor er det nødvendigt?
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 09:38 #5
Hvis du absolut vil have mulighed for at skrive tekst kan du i stedet for:

D2: =--VENSTRE(C2;1)
E2: =--VENSRE(E2;1)

bruge

=HVIS(ER.TAL(C2);--VENSTRE(C2;1);"")
=HVIS(ER.TAL(E2);--VENSTRE(E2;1);"")
og lignenede for alle de celler, du vil beregne gennemsnittet af.

--(dobbelt negation) kan du, hvis du foretrækker det ændre til VÆRDI, altså
VÆRDI(VENSTRE(C2;1)). Begge dele ændrer noget der minder om et tal, men faktisk er tekst (i Excel forstand) til et rigtigt tal. Lad os sige du har 25 i C2. =VENSTRE(C2;1) indtastet i for eksempel C4 vil da returnere 2 som er placeret til venstre i den celle, hvor du har formlen, hvilket indikerer, at Excel opfatter det som tekst. Prøv nu i C5 at indtaste =--(VENSTRE(C4;1)). Med C5 valgt prøv i formelfeltet at markere præcist følgende del af formlen:
-(VENSTRE(C4;1)) og tryk på F9. Du vil se -2, altså, Excel har nu ændret en tekst til et tal (-). Prøv herefter i formelfeltet at markere --(VENSTRE(C4;1)) og tryk igen på F9. Du vil nu se, at Excel har ændret -2 til 2. Det minder lidt om matematikkens minus gange minus giver plus.
Avatar billede JJ77 Juniormester
21. oktober 2022 - 10:26 #6
@xl-Enthusiast: Det er fordi at der i visse tilfælde kan være udfyldt med "Ej relevant".. Derfor. Så feltet kan være udfyldt med værdier fra 1-5 eller "Ej relevant".
Avatar billede JJ77 Juniormester
21. oktober 2022 - 10:39 #7
@xl-Enthusiast:

Der er faktisk en udfordring ved at bruge den nye formel: =HVIS(ER.TAL(C2);--VENSTRE(C2;1);"")

Feltet C2 kan nemlig indeholde følgende værdier/svar:

5 - Meget stærk
4 - Stærk
3 - Middel
2 - Lav
1 - Meget lav
Ej relevant

Det er derfor, at jeg kun har brug for at hente det første ciffer/værdi. Men den nye formel kan ikke længere hente det første ciffer/værdi, da feltet indeholder en kombination af tal og tekst.

Så mit mål er at overføre det første ciffer/værdi uanset hvad, og efterfølgende at kunne beregne gennemsnittet på felterne. Og her skal gennemsnitfunktionen springe eventuelle felter over som fx indeholder bogstavet E.

Ja, det er lidt triggy :-)
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 10:46 #8
Kan du ikke prøve at uploade en fil til Dreopbox (og så lægge et link herinde) giv i filen eksempler og indtast manueltt ønsket resultat. Dette for at undgå at skrive frem og tilbage 25 gange herinde.
Avatar billede madklub Guru
21. oktober 2022 - 11:17 #9
D2:=HVIS.FEJL(VENSTRE(C2;1)*1;"")

Istedet for '--' kan man gange med 1.
Hvis der er fejl i formlen, skriver den ingenting
Avatar billede JJ77 Juniormester
21. oktober 2022 - 12:08 #10
@xl-Enthusiast:

Hermed link til fil med forsimplet eksempel. Håber det hjælper ift. en løsning :-)

https://www.dropbox.com/scl/fi/d79cvbume3g20xfj6o6h5/Eksempel-til-exp.xlsx?dl=0&rlkey=vbr1ft0clpovisb7c2xcgf51u
Avatar billede JJ77 Juniormester
21. oktober 2022 - 13:46 #12
@xl-Enthusiast:

Jeg har tilføjet en kommentar i dokumentet. Du får den også lige her :-)

Jeg har stadig brug for at gennemsnittet bliver udregnet - også der hvor der kommer felter med #Value!. Så resultatet af den ene som nu er tom burde være 3,5 og resultatet af den anden burde være 1,5.
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 14:16 #13
Løsningen kræver, at du har adgang til den funktion der på engelsk hedder HSTACK.

https://www.dropbox.com/scl/fi/jmc7hy8q29c3yl308q14i/MIDDEL_eksempel_2.xlsx?dl=0&rlkey=a88f5qx9xzew13961pddloc2b
Avatar billede JJ77 Juniormester
21. oktober 2022 - 14:18 #14
@xl-Enthusiast: og det går ikke hvis #VALUE bliver udskiftet til et 0, for så bliver gennemsnittet jo udvandet. De steder hvor brugeren har valgt Ej relevant skal ikke være en del af gennemsnittet, som de jo vil være hvis #VALUE bliver konverteret til 0..
Avatar billede JJ77 Juniormester
21. oktober 2022 - 14:24 #15
Hvis jeg ændrer følgende ser det ud til at virke, for så indsættes der ikke et 0, men et tomt felt i stedet:

=HVIS.FEJL(--VENSTRE(D3;1);0)

ændres til

=HVIS.FEJL(--VENSTRE(D3;1);"")
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 14:25 #16
Så den gennemsnit du selv skriver i C4 er altså forkert - eller hvad?
Avatar billede xl-Enthusiast Ekspert
21. oktober 2022 - 14:30 #17
Det jeg skrev i #13 var forkert.

Er problemet løst eller hvad?
Avatar billede JJ77 Juniormester
21. oktober 2022 - 14:34 #18
C4 skulle gerne give 3,5 i snit.

Og det gør den også hvis man benytter følgende formel:

=HVIS.FEJL(--VENSTRE(D4;1);"")
=HVIS.FEJL(--VENSTRE(F4;1);"")
=HVIS.FEJL(--VENSTRE(H4;1);"")

Resultatet bliver så
- Blank
- 2
- 5

Og gennemsnittet på de tre felter bliver 3,5 hvilket også er det rigtige, da det kun skal udregnes ift. de to hvor der er et brugbart svar... I den blanke er svaret jo Ej relevant og det skal derfor ikke være en del af gennemsnittet.
Avatar billede JJ77 Juniormester
21. oktober 2022 - 14:37 #19
Jeg har rettet i formlen i dropbox-eksemplet.. så kan du se at det virker :-)
Avatar billede JJ77 Juniormester
21. oktober 2022 - 15:42 #20
Og 1000 tak for hjælpen :-)
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