Avatar billede ransborg Juniormester
12. september 2002 - 19:49 Der er 24 kommentarer og
1 løsning

avanceret gennemsnits udregning

Hej Alle,
Jeg håber der er en, som kan hjælpe mig med en formel for følgende:

Regnearket:
-------------------------------------------------
I A1 står der Jan-02
I A2 står omsætningen for januar
I B1 står der Feb-2
I B2 står omsætningen for februar
etc
etc
I H1 står der Aug-02
I H2 står omsætningen for august
--------------------------------------------
Jeg ønkser nu at udregnet den gennemsnitslige omsætning for de måneder, hvor der er omsætning. Der kan være en måned, hvor omsætningen er "Blank" - det vil sige, kunden er ikke faktureret der.

Udregningen skal stå udfor I2.

Jeg er selv nået frem til følgende:
=(sum(A2:H2)/tæl(A2:H2))

Men men pga usikkerhed ønskes det, at den første fakturerede værdi udelades. Hvordan skruer jeg lige den sammen?

Håber I kan hjælpe mig.

Mvh
Ransborg
Avatar billede sjap Praktikant
12. september 2002 - 20:27 #1
Den formel du angiver svarer til

=middel(A2:H2)
Avatar billede sjap Praktikant
12. september 2002 - 20:32 #2
Du kan overveje at bruge

=SUM.HVIS(A2:I2;">0";A2:I2)/TÆL.HVIS(A2:I2;">0")

Den vi i hvert tilfælde udelukke de blanke (men det gør middel nu også i nogen tilfælde).
Avatar billede sjap Praktikant
12. september 2002 - 20:37 #3
Hvad mener du egentligt med at den først fakturerede værdi skal udelades? Mener du f.eks. at kunden først faktureres i apr-02, så skal denne måned udelades (de foregående udelades jo, da de er blanke).
Avatar billede sjap Praktikant
12. september 2002 - 20:39 #4
Hvis ovenstående er korrekt, hvordan fastslår du så hvilken måned, der indeholder den først fakturerede værdi?
Avatar billede ransborg Juniormester
12. september 2002 - 20:58 #5
Superjap > du har helt ret i middel.

Tjaaa superjab, den først måned, hvor der ikke faktures er den måned, hvor omsætningen er forskellig fra blank.
så det må være noget ala: =hvis(sum(B2:D4)=0;middel(F4:H4);middel(E4:H4))

men det vil kræve mange hvis sætninger at gøre det på den måde - og der kan være en lettere metode?
Avatar billede ransborg Juniormester
12. september 2002 - 21:13 #6
Den første fakturede er ofte også den mindste omsætning, hvis det hjælper?
Det skyldes, at omsætningen kan være fra en halv måned
Avatar billede ransborg Juniormester
12. september 2002 - 21:36 #7
skullde selvfølgelig stå:
=hvis(sum(B2:D2)=0;middel(F2:H2);middel(E2:H2))
Avatar billede sjap Praktikant
12. september 2002 - 21:47 #8
En mulighed er:

=SUM.HVIS(A2:L2;">"&MIN(A2:L2);A2:L2)/TÆL.HVIS(A2:L2;">0"&MIN(A2:L2))

men den vil bare altid se bort fra den mindste værdi.
Avatar billede sjap Praktikant
12. september 2002 - 21:51 #9
Hvis man antager at når er blank så skal den mindste værdi udelades, så kan det gøres sådan her:

=SUM.HVIS(A2:L2;">"&HVIS(A2="";MIN(A2:L2);"0");A2:L2)/TÆL.HVIS(A2:L2;">0"&HVIS(A2="";MIN(A2:L2);"0"))
Avatar billede ransborg Juniormester
13. september 2002 - 05:26 #10
superjab

En blank værdi er IKKE lig med den mindste omsætning - en blank værdi viser, at der ikke er fakturert i den pågældende måned. En mindste værdi vil f.eks. være 0 - som er reelt nok - her har kunden ganske enkelt ikke købt noget.

Jeg takker mange gange for din ihærdighed, men det er ikke den løsningsmodel, jeg leder efter

Mvh
Ransborg
Avatar billede ransborg Juniormester
13. september 2002 - 05:28 #11
Superjab,
det kan jo være, at kunden først bliver faktureret fra april og resten af året - derfor kan blanke ikke ses som en mindste værdi.
Avatar billede bak Forsker
13. september 2002 - 08:54 #12
ransborg-> hvis du har mod på det så prøv denne array-formel
=AVERAGE(INDIRECT((ADDRESS(ROW(A2:L2);MIN(IF(A2:L2>0;COLUMN(A2:L2);""))+1)&":l2")))

Da det er en array-formel afsluttes indtastning med ctrl-shift-enter og den får så tuborgklammer omkring {} automatisk
Avatar billede bak Forsker
13. september 2002 - 08:57 #13
Lige en lille ændring til det bedre
=AVERAGE(INDIRECT((ADDRESS(ROW(A3:L3);MIN(IF(A3:L3>0;COLUMN(A3:L3);""))+1)&":l"&ROW(A3:L3))))
Avatar billede sjap Praktikant
13. september 2002 - 09:01 #14
ransborg

Min forklaring blev vist lidt kortere end den skulle. Det min formel gør er, at den blot undersøger om A2 er blank, hvis det er tilfældet, så udelades den laveste værdi fra beregningen. Hvis A2 ikke er blank, så medtages alle værdier større end 0.

Jeg ved ikke om du fik prøvet formlen, men så vidt jeg har forstået, så var det, det du var ude efter.  :-)
Avatar billede bak Forsker
13. september 2002 - 09:06 #15
Oversat til dansk
=MIDDEL(INDIREKTE((ADRESSE(RÆKKE(A2:L2);MIN(HVIS(A2:L2>0;KOLONNE(A2:L2);""))+1) & ":L" & RÆKKE(A2:L2)))))
Avatar billede bak Forsker
13. september 2002 - 09:25 #16
Efter at have læst din forklaring igen skal HVIS sætnigen i midten ændres til HVIS(A2:L2<>"";

=MIDDEL(INDIREKTE(ADRESSE(RÆKKE(A2:L2);MIN(HVIS(A2:L2<>"";KOLONNE(A2:L2);""))+1) & ":L" & RÆKKE(A2:L2))))
Avatar billede ransborg Juniormester
16. september 2002 - 10:10 #17
Bak,
jeg har lige brug for din hjælp til din formel.

Hvis jeg nu også har omsætning i række 3,4,5,6,7,89, etc. hvordan kopiere jeg så din formel ned? jeg får at vide, at jeg ikke må gøre det med en matrix?

på forhånd tak

Mvh
Ransborg
Avatar billede ransborg Juniormester
16. september 2002 - 11:13 #18
Bak,
jeg har klaret ovenstående, men jeg får nogle gange division by 0 -errors -kan du rette formlen til, så den tager højde for det?

Pft

Mvh
Ransborg
Avatar billede bak Forsker
16. september 2002 - 14:13 #19
På hvilket tidspunkt går formlen kold ?
Avatar billede ransborg Juniormester
17. september 2002 - 11:22 #20
bak,
her du en mail adresse, så jeg kan vise dig, hvor formlen må give op?

Mvh
Ransborg
Avatar billede bak Forsker
17. september 2002 - 16:16 #21
tommybak@netscape.net
Avatar billede ransborg Juniormester
17. september 2002 - 20:08 #22
Bak,
Jeg sender regnearket til dig imorgen tidlig.

Takker på forhånd for hjælpen

Mvh
Ransborg
Avatar billede ransborg Juniormester
18. september 2002 - 10:10 #23
Bak,
Jeg har hermed sendt mit ark til dig.

Håbr du kan hjælpe mig.

Pft

Mvh
Ransborg
Avatar billede bak Forsker
19. september 2002 - 00:50 #24
Ransborg
Det bliver s.. en megaformel, så istedet har jeg lavet en vba-funktionFunction SpecialMiddel(rngA As Range)
Dim v As Integer
Dim count As Integer
Dim start As Boolean
Dim celle As Range
Dim last As Range
start = False
v = Application.WorksheetFunction.count(rngA)
count = rngA.Cells.count
If v = 0 Then
  SpecialMiddel = ""
  Exit Function
End If
If v = 1 Then
  SpecialMiddel = ""
  Exit Function
End If
For Each celle In rngA
  If start = True Then Exit For
  If IsNumeric(celle) And Not IsEmpty(celle) Then
    start = True
  End If
Next
Set last = Range(celle.Address, rngA.Cells(count).Address)
SpecialMiddel = Application.WorksheetFunction.Average(last)
End Function
Avatar billede ransborg Juniormester
24. september 2002 - 18:58 #25
Hej bak,
jeg afprøver din formel på torsdag, undskyld ventetiden

Mvh
Ransborg
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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