Just nu i M3-nätverket
Jump to content

Matrisformel


dopyworld

Recommended Posts

Har en formel som listar data i fallande ordning, med största värdet först. Med hjälp av en matris-formel får jag även med rubriken till respektive värde, vilket fungerar bra.

 

Problemet är om jag har två poster med samma värde, då ändras inte rubriken på nr 2 som har samma värde.

 

Hoppas ni förstår. Använder följande för att skriva ut rubrikerna:

 

{=INDIREKT(ADRESS(1;KOLUMN(INDIREKT(ADRESS(MIN(OM($A$2:$H$2=D6;RAD($A$2:$H$2);""));MIN(OM($A$2:$H$2=D6;KOLUMN($A$2:$H$2);"")))))))}

 

Link to comment
Share on other sites

Mmmh....

Två lika värden är alltid problematiskt...

Du har alltså slagit upp två värden som finns i en tabell och ska sedan söka reda på dessa igen och hämta värdet som står bredvid detta.

 

En tanke är att du nyttjar radnumret för värdet. Är det heltal du arbetar med? Kanske lägga till radnumret, där talet hämtats ifrån, delat med 1000 till talet? Sedan kan du enkelt extrahera detta värdet och därmed få fram raden för rubriken.

 

En annan är nyttjande av formeln RANG utmed tabellen och även då nyttja radnumret för att särskilja värden. Sedan en enkel sak att slå upp det RANG returnerat.

 

Det var två tankar, någon som du tror passar?

 

 

/T

 

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

 

Link to comment
Share on other sites

Jag förstår nog inte alls vad du menar. Bifogar en bild på hur jag har gjort, och hoppas att ni förstår.

 

[bild bifogad 2007-03-05 17:47:03 av dopyworld]

[bild bifogad 2007-03-05 17:50:45 av dopyworld]

[bild bifogad 2007-03-05 19:46:02 av dopyworld]

925593_thumb.jpg

Link to comment
Share on other sites

Okej

 

I D6 kan du skriva:

=STÖRSTA(($A$2:$H$2+KOLUMN($A$2:$H$2)/1000);C6)

dvs lägg till kolumnumret till värdet.

Sedan i E6 kan du skriva

=INDEX($A$1:$H$1;1;(D6-HELTAL(D6))*1000)

 

För grafens skull kan du alltid köra en egen STÖRSTA sats eller bara ta ut heltalen ur det STÖRSTA returnerat.

 

 

/T

 

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

 

Link to comment
Share on other sites

Fel av mig. Nu fungerar det. Kanon! Tusen tack!

[inlägget ändrat 2007-03-05 20:32:00 av dopyworld]

Link to comment
Share on other sites

  • 3 months later...

Väljer att öppna upp tråden igen då jag har hittat ett nytt problem.

 

Om jag inte använder mig av heltal, då blir det ju helt galet.

 

Vilken formel ska jag använda mig av då??

 

Använder ju

 

I D6 kan du skriva:

=STÖRSTA(($A$2:$H$2+KOLUMN($A$2:$H$2)/1000);C6)

dvs lägg till kolumnumret till värdet.

Sedan i E6 kan du skriva

=INDEX($A$1:$H$1;1;(D6-HELTAL(D6))*1000)

 

i nuläget, vilket givetvis bara fungferar med heltal. Tacksam för hjälp!

 

Link to comment
Share on other sites

Ja du, hur ska vi lösa detta?

 

Genom någon enkel men smart matematiskt funktion kanske?

 

Formlerna du nu använder separerar lika värden genom att lägga till en decimal som sedan tas bort vid uppslaget med INDEX.

 

En enkel lösning, i STÖRSTA-formeln - flytta kommatecknet så många decimaler som du vill ha med i beräkningarna, dvs en decimal multiplicera med tio:

{ =STÖRSTA(($A$2:$H$2*10+KOLUMN($A$2:$H$2)/1000);C6) }

Sedan "snyggar" jag till INDEX lite även:

=INDEX($A$1:$H$1;1;AVRUNDA((D6-HELTAL(D6))*1000;0))

pga inexakta flyttalsberäkningar såg att resultatet av kolumnindex kunde bli decimaltal (ex.v. 4,9999999).

 

Notera att om du har fler än två decimaler måste du öka på talet som det kolumn-numret divideras med.

 

 

/T

 

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

 

Link to comment
Share on other sites

Nej det vill sig inte.

 

Det jag jobbar med är %, om nu det spelar någon roll?

 

Själva sorteringen i sig

=STÖRSTA(($A$2:$H$2+KOLUMN($A$2:$H$2)/1000);C6)

 

fungerar som den skall, det är när den skall hitta rött rubrik som det blir galet.

 

Tack för hjälpen hittils :)

 

Link to comment
Share on other sites

Okej, vi gör om det lite då. Du får en längre formel:

{ =MAX((STÖRSTA(($A$3:$H$3*10+KOLUMN($A$3:$H$3)/10000);C6)= ($A$3:$H$3*10+KOLUMN($A$3:$H$3)/10000))*(KOLUMN(A3:H3))) }

som ger dig rätt kolumnnummer direkt.

 

Fungerar genom att jämföra värdet STÖRSTA tar fram med värden i beräkningen och multiplicerar detta med kolumnnumret. Alla värden utom ett bli till noll varvid MAX av denna matris ger kolumnnumret som du sedan kan använda i INDEX-formeln.

 

 

/T

 

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

 

Link to comment
Share on other sites

Nu fattar jag nog inte riktigt... :(

 

Visst nu sorterar den fram rätt kollumn som jag vikll ha, men (vad jag fattar) är det inte det som är problemet? Problemet är att jag får #referens från men INDEX-formel. Den andra formeln sorterar som den skall.

 

Är det jag som inte fattar??

 

[inlägget ändrat 2007-06-10 12:15:22 av dopyworld]

Link to comment
Share on other sites

Ett litet obs, formeln "tittar" en rad under den tidigare.

 

#Referens fel beror nog på att funna kolumnen är större än bredden på referensen som INDEX slår upp värdet i. Kontrollera referenserna. Formeln fungerar som sagt.

 

Edit: Index-formeln i bilden är:

=INDEX($A$1:$H$3;1;$D6) i E6

 

/T

 

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

 

[bild bifogad 2007-06-10 13:03:33 av Monshi]

 

[inlägget ändrat 2007-06-10 13:04:17 av Monshi]

952236_thumb.jpg

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...