Just nu i M3-nätverket
Gå till innehåll

summering beroende på flera villkor


nite

Rekommendera Poster

jag har en lista med produkter där jag vill göra en summering i kolumn D beroende på vad som står i tre andra kolumner i samma rad (Kolumn A, B och C).

 

Jag har tidigare använt mig av matrisformeln:

{=summa((område1=villkor1)*(område2=villkor2)*(område3=villkor3)*summeringsområde))}

 

Jag har dock stött på problem i villkor1...

 

Problem 1: villkor1 utgör endast en liten del av textsträngen i A:?. Det är de två första siffrorna (10) som är mitt villkor i "10 555 cover black".

 

Problem 2: villkor1 kan uppfyllas på två sätt. Villkoret är uppfylls antingen av "10" eller av "20".

 

Går det att få till en formel som tar hänsyn till detta?

 

//Niclas

 

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ändra villkorsteg 1 till:

(ICKE(ÄRFEL(HITTA("10";område1)))+ICKE(ÄRFEL(HITTA("20";område1))))

 

Denna söker efter värdena i hela cellen, vill du bara ta med de två första tecknen i cellen blir det istället:

(ICKE(ÄRFEL(HITTA("10";VÄNSTER(område1;2))))+...

 

Det bör fungera.

 

Vill du slippa ha det som matrisfunktion, vilket kan vara lite besvärligt ibland, byt ut SUMMA() mot PRODUKTSUMMA().

 

Edit:

För de som undrar vad som sker i formeln;

Ett antal SANT/FALSKT värden beräknas. I beräkningssammanhang tolkas SANT/FALSKT som 1/0. Dessa värden multipliceras varefter de summeras.

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2006-05-03 09:30:08 av Monshi]

Länk till kommentar
Dela på andra webbplatser

 

Formeln funderar perfekt på en egenskapad lista. Dock blir jag vansinnig när jag skall använda den i filen där jag skall ha den. Där får jag bara värdefel eller noll. Vet inte vad det är som blir fel.

 

//Niclas

 

Länk till kommentar
Dela på andra webbplatser

Du kan undersöka vad formeln returnerar på tre sätt

1: Markera del av formel du vill ha utvärderad och tryck F9. Dok kan denna vara lurig, dvs ej fungera riktigt, när matrisformler är inblandade.

2: Dela upp formeln i sina respektive delar. Om du vill se vad de olika raderna i matrisformeln returnerar;

Markera ett antal rader (så många vars värden du vill se), se till att markera uppifrån och ned så att översta cellen i området är den aktiva.

Skriv i denna in din formel, se till att referenserna är rätt och avsluta med CTRl+SHIFT+ENTER. Matrisformeln fyller då de celler du markerat.

 

3: Ta upp verktygsfältet formelgranskning och använd verktyget där.

 

Viktigt när man använder matrisformler är att alla områden, alla del-beräkningar, är lika stora.

 

Värdefel beror på att någon av formlerna returnerar just värdefel. Se vilken det är och rätta till den. Om NÅGON av cellerna i SUMMA formlen INTE är ett tal eller en tom cell så blir det #VÄRDEFEL. Ex.v. om någon cell inom summeringsområde ej är ett tal eller tom så blir det fel.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

undercover

SÖK istället för HITTA? (okänslig för skiftläge)

 

***ED, och hur tusan skulle skiftläget kunna påverka i det läget <skäms>***

 

Ähhh, vad tusan. håll det enkelt och använd Vänster ordentligt:

((VÄNSTER(range1;2)="10")+(VÄNSTER(range1;2)="20"))*(...

 

 

[inlägget ändrat 2006-05-04 12:27:59 av undercover]

Länk till kommentar
Dela på andra webbplatser

SÖK/HITTA - ahh där finns en skillnad. Använder inte dessa funktioner så ofta om det nu är en ursäkt.

 

Och ja - VÄNSTER räcker - då slipper man även ÄRFEL() och ICKE(), bara en summering kvar.

 

men inte där felet i formeln ligger, inte det som genererar fel utan något fel i datat...

 

Bra observerat ändå min kära vän. Alltid bra med kortare formler.

 

Kanske man även ska lägga till en RENSA() om man är osäker på datat.

 

Ja, nu får Nite komma tillbaka med vad det är för data han har problem med, vart han får de ifrån.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

undercover

Ummm, enligt beskrivningen skall SÖK dessutom jobba från höger. Precis vad man velat ha ibland (när man vill hitta den sista förekomsten av något) men det är tyvärr inte sant, den går från vänster den med... Däremot vekar den stödja jokertecken på ett bättre sätt än "HITTA". Ett exempel

=SÖK("r?d-";A4)

skulle kunna användas när man vill hitta både röd och rod typ. Har en gnagande känsla av att det där skulle ha varit användbart några gånger.

 

Skulle vilja lägga till en "0:a" i din felsökning (eller kanske 2.a):

Gör en vanlig (ickematris) formel där "range1..." byts ut mot enstaka celler och klistra in den i E kolumnen eller liknande. Då kan man ännu lättare kontrollera om logiken stämmer. Villkoren är ju exempelvis väldigt känsliga för paranteser. Kanske dela upp fomlerna på flera rader med avslutade paranteser Typ:

=(
((VÄNSTER(A5;2)="10")+(VÄNSTER(A5;2)="20"))*
(B5>1)*
(C5="x")*
D5
)

Inte så stor skillnad mot din punkt 2 men jag tycker att det är lättare att helt utesluta matrisproblematiken först och när man är 100% säker på att villkoren stämmer så är det ju lättare att gå vidare till eventuella "matrisproblem".

 

 

Länk till kommentar
Dela på andra webbplatser

 

Anledningen till att formeln inte fungerade var ett ett antal tomma celler. Nu fungerar det kanon . Tack för hjälpen!

Nu har jag andra funderingar, men det får bli en annan tråd...

 

 

:thumbsup:

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...