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

Hjälp med formel


ante_77

Rekommendera Poster

Är det någon som kan hjälpa mig med det här problemet?

 

=IF(SUMPRODUCT(('TP-001'!$A$2:$A$40000=$ A5)*('TP-001'!$C$2:$C$40000=AG$4))=0 ;"";SUMPRODUCT(('TP-001'!$A$2:$A$ 40000=$A5)*('TP-001'!$C$2:$C$40000=AG$ 4)))

 

men jag vill ha ('TP-001'!$C$2:$C$40000=AG$4))=0 att räkna unika värden (ej tal) i kolumn D, från rad 2 till 40000 (alltså endast om dom uppfyller 'TP-001'!$A$2:$A$40000=$A5)

 

Är det någon som kan ge snabbhjälp? Har stirrat mig blind på det här...

 

Hoppas att jag inte var för krånglig att uttrycka mig

Länk till kommentar
Dela på andra webbplatser

Vilken version av Excel har du? I Excel 2007 kan man ofta ersätta Produktsumma med SUMMA.OMF. Riktigt smidigt vanligtvis.

 

Fast samtidigt, du vill räkna unika tal? På vilket vis? Menar du antalet unika tal/värden?

 

Säger serien

1, 2, 3, 1, 2, 4

så har vi 4 olika tal varar två är unika, förekommer bara en gång.

Är det så du menar? Eller?

 

Din formel du har räknar antal rader/cellpar som har exakt värdena i A5 och AG4

 

ja, som denna

post-8996-1270576774,25_thumb.png

Länk till kommentar
Dela på andra webbplatser

Vilken version av Excel har du? I Excel 2007 kan man ofta ersätta Produktsumma med SUMMA.OMF. Riktigt smidigt vanligtvis.

 

Fast samtidigt, du vill räkna unika tal? På vilket vis? Menar du antalet unika tal/värden?

 

Säger serien

1, 2, 3, 1, 2, 4

så har vi 4 olika tal varar två är unika, förekommer bara en gång.

Är det så du menar? Eller?

 

Din formel du har räknar antal rader/cellpar som har exakt värdena i A5 och AG4

 

ja, som denna

post-8996-1270576774,25_thumb.png

 

 

Sitter med Excel 2007

 

Nja, formeln räknar väl antal rader i flik "TP-001" om den innehåller samma värde som AG4 och A5.

 

Den gör allt riktigt, men den räknar inte unika nummer.

 

 

AHHH, sitter och ser på formeln och AG4 kan inte vara med i denna formel.

Måste vänta tills imorgon när jag åter har XL arket framför mig.

 

Men tack ändå. Tror att jag kan behöva hjälp om ca 12 timmar igen blush.gif

Länk till kommentar
Dela på andra webbplatser

Med unika nummer, hur menar du?

Ger ett exempel, en kort lista, på vad du har och vad du vill få ut. Glöm formeln och låt oss här se om vi kan finna en väg mellan data och målet.

Länk till kommentar
Dela på andra webbplatser

Summan jag får i ex. AK12 hæmtas från...

 

post-71939-1270612341,78_thumb.jpg

 

Den här. Men bara om A kolumnen i "TP-001"... har samma värde som cellen i "report" (a kolumn)

 

post-71939-1270612363,62_thumb.jpg

 

Men nu räknar den alla celler i D kolumnen om det står "DV01" i C kolumnen.

 

Hur får jag den att bara räkna unika celler...

Länk till kommentar
Dela på andra webbplatser

Jag hade tänkt mig ett litet exempel med fiktiva men liknande data... nåja, får väl fixa det själv...

 

post-8996-1270622160,67_thumb.png

Om vi tar detta lilla exempel, vilka värden förväntar du dig i Count-kolumnen?

 

Eller har jag missat något nyckelvärde du behöver? I sig låter det som om du vill ha värdet 1 som resultat för båda men anar att det inte är rätt.

 

Allmänt tips, Excel 2007, tabeller formaterade som tabeller. Använd då de namn som tabell och kolumn i tabellen har.

Länk till kommentar
Dela på andra webbplatser

Har svårt att förklara och uttrycka mig (både verbalt och i text).

Och när det gäller Excel och uttryck så blir det inte lättare cool.gif .

 

Det som låter bra i mitt huvud låter sällan bra när det lämnar munnen (eller fingrarna).

 

Vi får se hur detta går, men tusen tack för hjälpen så långt

Länk till kommentar
Dela på andra webbplatser

I count vill jag ha 3 i första och 1 i andra cellen

 

 

 

Tre? Du har fyra identiska värden i tabellen, TP-001 - 1 - DV01 i fyra rader.

 

Det är något jag missar. ge mig ett solkart exempel! Då kan jag nog fixa det åt dig men hittills har vi inte talat samma språk.

 

Fast, mmh, kanske jag ska nämna det? Har du tittar på Pivottabell? Kanske det verktyget kan spara dig massor med huvudvärk?

Länk till kommentar
Dela på andra webbplatser

Nu har jag förenklat det hela lite. Men då uppstår ett annat problem.

 

Ska försöka hålla tungan rätt i mun...(jobbigt när man sitter på engelsk version av XL och dålig på termerna)

 

 

 

post-71939-1270635783,6_thumb.jpg

 

Här vill jag att Cell B2 ska jämföra A2 med kolumn E2:2000 och returnera talet i F kolumnen

 

Vet inte om jag ska använda match eller index eller en kombination.

 

 

 

 

 

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Det där är ju ett helt annat problem än det du målat upp tidigare!

 

Två alternativ. Antingen använder du VLOOKUP eller paret MATCH + INDEX.

 

Nu ska vi se om jag lyckas hålla tungan rätt ;)

 

=VLOOKUP(A2;$E$2:$F$200;2;FALSE)

eller

=INDEX($F$2:$F$200;MATCH(A2;$E$2:$E$200;0))

 

om engelskt operativ, byt ; till ,

Länk till kommentar
Dela på andra webbplatser

Ja, det var annat än det tidigare, gjorde som sagt en förenkling.

Men över till dom goda nyheterna. Jag fick göra en sådan här formel

 

=IF(INDEX('T-008K'!$I$2:$I$3000;MATCH(A5;'T-008K'!$A$2:$A$3000;0))=0;"";INDEX('T-008K'!$I$2:$I$3000;MATCH(A5;'T-008K'!$A$2:$A$3000;0)))

 

Och nu funkar det (ren tur) blush.gif

Länk till kommentar
Dela på andra webbplatser

trevligt...

 

men du, som sagt, använd tabellernas namn. MATCH är en relativt krävande funktion, att söka tar kraft. Den slutar visserligen söka vid första träff men det är ändå bra att begränsa områdena den söker i så mycket som möjligt. Tabellnamnen är trevliga eftersom de är dynamiska.

 

Samt ett litet aber. Notera att i din om-sats, om du får ett värde skiljt från noll, kommer MATCH att beräknas igen, dvs dubbelt. Inget större problem men om många instanser av formeln kan arket bli onödigt långsamt.

 

Och sista punkt, du får alltid träff? annars kommer det ett felvärde i cellen.

Länk till kommentar
Dela på andra webbplatser

trevligt...

 

men du, som sagt, använd tabellernas namn. MATCH är en relativt krävande funktion, att söka tar kraft. Den slutar visserligen söka vid första träff men det är ändå bra att begränsa områdena den söker i så mycket som möjligt. Tabellnamnen är trevliga eftersom de är dynamiska.

 

Samt ett litet aber. Notera att i din om-sats, om du får ett värde skiljt från noll, kommer MATCH att beräknas igen, dvs dubbelt. Inget större problem men om många instanser av formeln kan arket bli onödigt långsamt.

 

Och sista punkt, du får alltid träff? annars kommer det ett felvärde i cellen.

 

Har upptäckt att MATCH är krävande. Har en Xeon quadcore och det tar ca 30 minuter för den att kalkylera arket när jag trycket F9. (2 kärnor går inte)

Saken är att jag måste "bygga" om ett ark som bara har vuxit med tiden och det ligger en hel del array formler blandat med visualbasic och macron och allt samman ligger utspritt i 15 flikar.

 

Felvärde får jag men det är p.g.a att en av SQL'erna som används inte är komplett. Löser det inte sig med tiden så får jag se på VLOOKUP formeln.

 

Det är bara nödlösning som jag håller på med och jag är inte så bra på Excel.

Men att byta till VLOOKUP formeln hade säkert varit smidigare.

 

 

Tusen tack för hjälpen

Länk till kommentar
Dela på andra webbplatser

ough , 30 minuter. Då borde vi nog ta en titt på arket och söka andra lösningar. Som exempelvis Pivot-tabeller

 

Vad gäller MATCH - tipset där är att bryta ut den ur formeln och därmed halvera antalet beräkningar av denna.

Nästa steg med MATCH är att se till att den inte beräknas när den inte behövs. Vet du att det inte finns någon träff, beräkna den inte.

och sista - minimera antalet celler som MATCH söker igenom.

 

 

Array-formler är en annan syndare. Försök göra dig av med dessa, de är än mer krävande än MATCH. OCH än mer viktigt att de inte räknar på större områden än nödvändigt! Tabeller i Excel 2007, referenser med FÖRSKJUTNING (OFFSET) annars.

 

UDF-formler, egna formler i VBA-kod ska man också undvika. Om det går att lösa med vanliga formler ska man.

 

Ja, det var några tips. Några känner du nog till redan kan jag tänka mig.

Länk till kommentar
Dela på andra webbplatser

I ena fliken ligget 16st MATCH formler biggrin.gif. Har inte orkat räkna på dom andra.

 

Hittar en del fel överallt i arket och saker som inte gör som dom "ska" göra.

 

Men det är allt för mycket att gå igenom för mig och allt för lite kunnskap.

 

För dom som verkligen kan Excel hade man säkert kunnat använda det här arket till en firmafest med temat "HUMOR"biggrin.gif

 

Det är ett rutnät på min näthinna när jag går och lägger mig...

 

 

Länk till kommentar
Dela på andra webbplatser

Har tittat på sådant ark du beskriver några gånger. Det är inte humor, det är en stoooor SUCK

 

Med tiden växer en del ark ur alla sina mallar. Fyllda med egna, odokumenterade lösningar som ingen vet vad tanken bakom var. Allt tar även en evighet att göra.

 

Det kanske är värt att säga, Excel är inte ett helt pålitligt verktyg att göra stora kalkyler i. Det är lätt att göra fel, svårt att rätta till. När det börjar växa ur ramarna ska man fundera på om inte det hela hör hemma i en databas. Excel är som bäst när man låter data vara som i en databas, dvs i rena fina tabeller och med enkla klara rapporter.

 

16 match-formler är ingenting. Det är närt det blir flera hundra, ja några tusen, det börjar bli jobbigt. Matrisformler däremot, "korrekt" skapade kan några få sänka en hel bok.

 

Tänk dig en som

=PRODUKTSUMMA((A2:A5000=A1)*(B2:B5000>B1)*(C2:C5000<C1))

Låt oss se.

5000 jämförelser x3

5000 x2 elementvis multiplikation

1 summering över 5000 tal.

Summa summarum ger bara denna ekvation 25 000 flyttalsoperationer lite enkelt räknat. Inte så mycket. Men öka ut till 10 000 rader, gör den mer komplex, fler termer och upprepa den några gånger. Då har du något som tar ett tag att räkna.

 

eller... ett exempel ur privat bok jag har

{ =MAX(OM(MAX(OM(ÄRFEL(((APort=A30)*(ANamn=E30)*(ADatum<B30))*(ADatum));0;((APort=A30)*(ANamn=E30)*(ADatum<B30))*(ADatum)))=OM(ÄRFEL(((APort=A30)*(ANamn=E30)*ADatum));0;((APort=A30)*(ANamn=E30)*ADatum));RAD(ADatum);-1000)) }

När den tabellen den tittar på växer, då blir boken seg.

Fast ser nu att jag inte använt mina Excel 2007-kunskaper på den, den kan förbättras tror jag nog...om jag orkar.

dvs . om(ärfel(...);;(...)) kan bytas mot omfel(...;)

lite enklare, lite snabbare, lite kortare.

 

ed: ja, lite Excel 2007 applicerat på formeln så blev den bättre

{ =MAX(OM(MAX(OMFEL((APort=A30)*(ANamn=E30)*(ADatum<B30)*(ADatum);0))=OMFEL((APort=A30)*(ANamn=E30)*ADatum;0);RAD(ADatum);-1000)) }

fortfarande en matrisformel dock, tror inte det går att skapa en formeln som fixar det på annat vis.

Länk till kommentar
Dela på andra webbplatser

Det excel arket som jag jobbar med innehåller också en hel del sådana PRODUKTSUMMA saker.

 

 

Det som är gjort med det här excel arket är att det är dumpat en hel del rådata från SQL'er och sedan har vi plockat ut nödvändiga saker och kombinerat arket både till rapportering och verktyg till diverse saker.

 

För tilfället så förstår jag vad den gör, men om jag skulle se på den om ett år så hade jag inte fattat ett skitblush.gif

 

 

Har lust att bifoga den som fil så kan du se på idiotin och få dig ett gott skratt.

 

Länk till kommentar
Dela på andra webbplatser

skicka mig ett PM så kan du få min mailadress, ett så komplext ark som det du beskriver ryms väl inte inom de begränsningar som är satta här(max 2 MB)

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...