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

Räkna ord i formulär, pivottabell


Raesmus

Rekommendera Poster

Hej!

 

Håller för närvarande på att göra en sammanställning av ett frågeformulär jag givit ut. Formuläret består av 15 frågor, och man kan svara Ja / Nej på samtliga. Dessutom anger man kön och ålder.

 

Jag vill kunna analysera data och redovisa den med hjälp av pivottabell, som jag sedan kopplar till ett antal diagram. Anledningen är att jag vill kunna sortera på t.ex ålder eller kön, och se hur respektive sortering har svarat på respektive fråga.

 

Ex. Kvinnor mellan 20-25 har svarat Ja på fråga 1,2,3,8,9 och Nej på 4,5,6,7 osv.

 

Detta genom att jag har frågorna i rad (y-led), och sen att antal Ja / Nej räknas var för sig. Så om 2 kvinnor i 20-25 svarar Ja på fråga 1 och en svarar Nej på fråga 1 så kommer det stå 2 under kolumnen Ja, och 1 under kolumnen Nej.

 

Problemet är att pivottabellen inte riktigt vill som jag vill. Går det jag vill göra att genomföra?

 

Tacksam för all hjälp!

 

Med vänlig hälsning,

Raesmus

Länk till kommentar
Dela på andra webbplatser

Tror du ställer upp tabellen fel.

 

Du vill ställa upp så du har alla svar från en person på rad, säg i kolumn 1 ett svarsid, kolumn 2 svar på fråga 1 osv.

 

Om du du haft flervalsfrågor, då bör du tolka ut svaren i tabellen/innan tabellen. Blir enklare, begripligare vad du senare analyserar. Inget stort problem om du bara har ett "facit" att slå upp frågorna i, hämta värdena.

 

 

En rad, alla egenskaper, alla värden, för detta svar.

Länk till kommentar
Dela på andra webbplatser

Tror du ställer upp tabellen fel.

 

Du vill ställa upp så du har alla svar från en person på rad, säg i kolumn 1 ett svarsid, kolumn 2 svar på fråga 1 osv.

 

Om du du haft flervalsfrågor, då bör du tolka ut svaren i tabellen/innan tabellen. Blir enklare, begripligare vad du senare analyserar. Inget stort problem om du bara har ett "facit" att slå upp frågorna i, hämta värdena.

 

 

En rad, alla egenskaper, alla värden, för detta svar.

 

Ja, problemet är att det visas bara en 1a när jag gör på detta viset också. Jag har tillägnat varje formulär ett ID, detta ID provade jag nu lägga i en kolumn, varpå svaren Ja / Nej läggs på samma rad. I pivottabellen visas fortfarande endast 1. Vad kan det bero på?

 

Tacksam för svar!

 

EDIT: Det är tyvärr ett måste att kunna filtrera så att diagramen jag skapat uppdateras utifrån filtreringen. 

Länk till kommentar
Dela på andra webbplatser

Mmh, om du skickar upp en exempelbok kanske det blir lättare för mig att se.

 

Vet inte om denna jag gjort hjälper.

 

Men piviot kan bara visa text som rubrik/etikett, rad, kolumn eller rapport. Inom dataområdet vissas enbart summeringar/antal, dvs beräkningar.

 

 

Pivot.xlsx

Länk till kommentar
Dela på andra webbplatser

Mmh, om du skickar upp en exempelbok kanske det blir lättare för mig att se.

 

Vet inte om denna jag gjort hjälper.

 

Men piviot kan bara visa text som rubrik/etikett, rad, kolumn eller rapport. Inom dataområdet vissas enbart summeringar/antal, dvs beräkningar.

 

Börjar tro att det jag vill göra inte går.

 

Här har jag gjort en exempelbok som simulerar problemet jag har med 1:or som svar överallt. Skulle gärna vilja att där 1-9 står, står det "Ja / Nej / Svarar ej", och att "Fråga 1", "Fråga 2" osv står som det gör nu, så att på t.ex "Fråga 2" står det 3 under kategorin "Nej", eftersom samtliga deltagare svarat nej på frågan.

 

Det optimala skulle vara om frågorna är i en kolumn och svaren är i en kolumn vardera, men båda funkar.

 

EDIT: Ska bara luska ut hur man laddar upp filer.

Länk till kommentar
Dela på andra webbplatser

Allt går i excel, frågan är bara om Pivot är rätta verktyget.

 

Mitt förslag till dig är att du ger mig vad du vill få fram, hur du vill att din pivot ska se ut. Ett exempel gärna baserat på de data du gav i boken ovan. Inte en pivot utan bara en rapport, så som du vill ha den. 

 

Dina ord ger bara del av bilden för mig tyvärr. Ett praktiskt exempel kan jag nog säga om det gå med pivot eller ej. Annars går det alltid med formler.

Länk till kommentar
Dela på andra webbplatser

Allt går i excel, frågan är bara om Pivot är rätta verktyget.

 

Mitt förslag till dig är att du ger mig vad du vill få fram, hur du vill att din pivot ska se ut. Ett exempel gärna baserat på de data du gav i boken ovan. Inte en pivot utan bara en rapport, så som du vill ha den. 

 

Dina ord ger bara del av bilden för mig tyvärr. Ett praktiskt exempel kan jag nog säga om det gå med pivot eller ej. Annars går det alltid med formler.

 

Okej, jag får försöka förtydliga det i den filen jag bifogade. Vet inte riktigt hur jag ska visa det bara.

 

Anledningen till att jag vill ha pivot är att det egentligen är 4 saker jag vill kunna filtrera på, och inmatning av data kommer ske löpande över lång tid. Anledningen till att jag vill kunna filtrera är att presentationen av resultatet ska ske med hjälp av diagram, och det kommer bli över 60 diagram om jag måste göra dom statiska. Med hjälp av justeringar i filter kan jag snabbt byta mellan olika diagram och det hela blir mer tydligt.

Länk till kommentar
Dela på andra webbplatser

Bifogar här ett paintexempel på hur jag skulle vilja att det såg ut, sett till indata från exempelboken.

 

Hoppas det blir lite tydligare. Tack för att du tar dig tid! Det betyder mycket för mig!

post-135977-0-07225000-1421064707.jpg

Länk till kommentar
Dela på andra webbplatser

Ja du, jag tror nästan vi får ta till formler. Det går att ordna dessa så att de fungerar exakt som pivot med sök och allt med lite trix.

 

1: Skapa en lista med de värden du vill kunna filtrera efter. man/kvinna, åldersgrupp osv.

2: Skapa en listruta för varje filter, länka till en cell.

3: En formel som hämtar önskade värdet (index duger då listrutan ger valt index)

4: Ställ upp din tabell, med alla rad- och kolumnrubriker du behöver.

5: Skriv in formler där, antal.omf() borde duga där villkoren är

  • Dina filter
  • Rubriken

och du manuellt ser till att formeln "letar" i rätt kolumner. Ett engångsjobb att få till det, inte så farligt. Går iofs att skapa en generisk formel om man vill, bara att lägga in en rad där du skriver vilken kolumn ANTAL.OMF ska räkna i och använda INDEX för att hämta denna kolumn i din tabell. Lite överkurs men det går.

 

Klarar du dig med dessa instruktioner eller behöver du ett exempelark.

Länk till kommentar
Dela på andra webbplatser

Ja du, jag tror nästan vi får ta till formler. Det går att ordna dessa så att de fungerar exakt som pivot med sök och allt med lite trix.

 

1: Skapa en lista med de värden du vill kunna filtrera efter. man/kvinna, åldersgrupp osv.

2: Skapa en listruta för varje filter, länka till en cell.

3: En formel som hämtar önskade värdet (index duger då listrutan ger valt index)

4: Ställ upp din tabell, med alla rad- och kolumnrubriker du behöver.

5: Skriv in formler där, antal.omf() borde duga där villkoren är

  • Dina filter
  • Rubriken

och du manuellt ser till att formeln "letar" i rätt kolumner. Ett engångsjobb att få till det, inte så farligt. Går iofs att skapa en generisk formel om man vill, bara att lägga in en rad där du skriver vilken kolumn ANTAL.OMF ska räkna i och använda INDEX för att hämta denna kolumn i din tabell. Lite överkurs men det går.

 

Klarar du dig med dessa instruktioner eller behöver du ett exempelark.

 

 

 

Hade jag kunnat få ett exempelark hade det varit jätteuppskattat! Jag tror inte jag förstår riktigt.

 

Jag har gjort en nödlösning med OMF i, men du kanske använder på ett sätt som jag inte känner till.

 

Stort tack!

Länk till kommentar
Dela på andra webbplatser

Okej

 

En not bara

<20 och >30

för att få dessa val att fungera i formeln så har jag lagt in ett inledande mellanslag. Vet inte annars hur jag ska få till exakt sökning då < och > tolkas som mindre/större än.

Med ett inledande mellanslag blir det en textsträng istället.

Pivot Raesmus-1.xlsx

Länk till kommentar
Dela på andra webbplatser

Okej

 

En not bara

<20 och >30

för att få dessa val att fungera i formeln så har jag lagt in ett inledande mellanslag. Vet inte annars hur jag ska få till exakt sökning då < och > tolkas som mindre/större än.

Med ett inledande mellanslag blir det en textsträng istället.

 

Jag förstår inte riktigt hur du gjort än, men det ser ut som om det skulle kunna passa ändamålet! :) Får googla vidare på index och få grepp om hur det funkar.

 

Stort tack för all hjälp! Jätteuppskattat!

 

Länk till kommentar
Dela på andra webbplatser

Knepet med INDEX är

ja vi börjar med

INDEX(referens;rad;kolumn)

är grundformen.

OM rad argumentet utelämnas, dvs

=INDEX(A1:B10;;2)

får man ut hela den kolumn som rad-värdet anger, i detta fallet kolumn två i referensen, dvs B1:B10.

 

Smidigt, ger i detta fallet att formeln i tabellen blir densamma rakt igenom hela tabellen.

Länk till kommentar
Dela på andra webbplatser

Kan lika gärna fråga dig när tråden ändå är uppe.

 

Varför skapas listan som du kallar för "stöd"? I övrigt förstår jag tanken bakom index.

 

EDIT: Glömde refresha och såg nu att du skrivit, ursäkta! :)

Länk till kommentar
Dela på andra webbplatser

Jag förstår inte riktigt hur informationen hämtas ifrån rullistorna, jag kanske är lite mosig i huvudet efter att ha suttit med detta hela dagen, men omd u har lust att förklara skulle det uppskattas :)

Länk till kommentar
Dela på andra webbplatser

listrutorna, valen du kan göra baseras på de listor du har uppe till höger i tabellen.

När du väljer något skriver rutan det valda indexet till länkad cell, G16 och G17 i detta fallet. I cellerna bredvid låter jag INDEX, igen, hämta värdena så att ANTAL.OMF kan använda dessa.

 

I sig skulle du kunna använda dataverifieringsverktyget även här och slippa steget med INDEX.

Länk till kommentar
Dela på andra webbplatser

Detta är lite märkligt. Av någon anledning får jag meddelande om VÄRDEFEL då jag väljer ett område för matrisen i INDEX.

 

Väljer jag endast en rad, låt säga J2:J100, så går det.

Väljer jag ett område, låt säga J2:R100 så får jag meddelande om VÄRDEFEL. 

 

Vet du vad detta kan bero på?

 

EDIT: Haha, märkligt. Nu verkar det funka fastän jag bara ändrat fram och tillbaka med matrisen. 

 

Nu har det blivit NÄSTAN som jag vill ha det. Det enda problem jag har nu är att om jag inte väljer några variabler så står det 0. Det är ju logiskt eftersom kraven inte uppfylls. Finns det något man kan göra så att om man inte valt något så syns ALLA svar? Så om jag varken väljer kön eller ålder i den exempelbok du och jag pratat om, så syns istället samtliga Ja / Nej svar? Så att valen fungerar som ett filter ungefär.

Länk till kommentar
Dela på andra webbplatser

mmh, nog att du inte sätter rätt siffra, rätt referens eller liknande.

Tanken var ju att min INDEX skulle underlätta, inte försvåra.

 

Men ur bladet jag bifogade ovan

INDEX($B$2:$J$11;;$A21)

där B2:j11 är HELA din tabell. Du har Excel 2010+? Med tabeller, formatera om ditt frågesvarsområde till en tabell och använd den som argument så blir det alltid rätt.

då blir det exempelvis

INDEX(Tabell1[#Alla];;$A21)

istället.

A21 är relativa index på den kolumn som ska användas. Notera relativa.

Med referensen B2:J11

ger värdet 4 (på rad ett) alltså kolumn B6 inom referensen.

Du kan testa skriva, i en egen cell,

=INDEX($B$2:$J$11;1;$A21)

så bör du få ut kolumnens rubrik.

 

#värdefel

Det får du om storleken på vektorerna i ANTAL.OMF är olika stora.

De måste alla vara lika höga/långa, dvs lika många rader.

Använd tabellen, hela kolumnen, så löser du det problemet.

 

 

Ja, se bifogad fil.

 

Pivot Raesmus-1.xlsx

Länk till kommentar
Dela på andra webbplatser

Jag verkar ha fått det att fungera, tack så mycket! Det enda jag inte fått att fungera, jag vet inte om du läste det, är om man på något sätt kan visa allt som INTE är bortfiltrerat? I nuläget visar det ju bara om man filtrerat på samtliga val.

 

Vore den bästa idén att jag skriver en sträng som bara hämtar all information ur rådatan, och lägger den som valbart alternativ i rullistan med de andra valen?

 

Ex. I rullistan för kön finns Välj / Man / Kvinna. Då det står "Välj", så visas all information, oavsett kön?

 

Skulle det funka tror du?

 

Du har Excel 2010+? 

 

Nej tyvärr, det borde jag kanske ha skrivit. Jag har Excel 2007.

Länk till kommentar
Dela på andra webbplatser

2007 har även det tabellformat, my bad, filen ovan ska fungera med tabeller och allt.

 

Mmh, bara ett val (av flera).

Jomenvisst.

Om vi säger att du lägger in VÄLJ i listan, som sista val, och i cell H16 skriver

=OM(G16=3;"*";INDEX(N3:N4;G16))

dvs om post 3, som vi vet är VÄLJ, är vald, returnera en stjärna. Annars använd INDEX-formeln.

Och i H17 motsvarande

=OM(G17=5;"*";INDEX(O3:O6;G17))

Länk till kommentar
Dela på andra webbplatser

2007 har även det tabellformat, my bad, filen ovan ska fungera med tabeller och allt.

 

Mmh, bara ett val (av flera).

Jomenvisst.

Om vi säger att du lägger in VÄLJ i listan, som sista val, och i cell H16 skriver

=OM(G16=3;"*";INDEX(N3:N4;G16))

dvs om post 3, som vi vet är VÄLJ, är vald, returnera en stjärna. Annars använd INDEX-formeln.

Och i H17 motsvarande

=OM(G17=5;"*";INDEX(O3:O6;G17))

 

Jag ska testa detta, jag har gjort på lite annat sätt än du visade i testboken. I min riktiga fil hämtas värdet direkt ur rullistan, istället för en extern lista som du har gjort i exempelboken (med extern lista menar jag G16:H17).

 

Men jag är inte säker på att vi förstår varandra. Min tanke är att samtliga svar ska visas om inget annat väljs. Om vi väljer t.ex man, så ska samtliga svar från män stå. Om vi sedan ytterligare väljer ålder, ska svaren givna av män i det åldersintervallet stå.

 

Är det så du också förstått det?

 

Tack på förhand!

 

EDIT: Provat använda formelen som du skrev. Den funkar för siffror, så som ålder, men jag får inte den att funka för filter som blandar siffror och bokstäver. T,ex om jag har en lista där det står M20,M21,M22 osv i lodrätt riktning, och vill returnera ur den listan, så står det bara värdefel. 

 

Du som kan, hur bör man tackla värdefel?

 

EDIT 2: Kollat närmare på felet, får enligt rapporten detta:

 

"OM(FALSKT;#SAKNAS!;INDEX(N12:N31:'M22''))

 

Nästa beräkning kommer att resultera i ett fel."

 

Varför gör det det? M22 i detta fallet är vad jag vill ska stå i rutan.

Länk till kommentar
Dela på andra webbplatser

Inte bara text, även tal.

mmh, alltid lite problematiskt.

 

Då blir det lite ändringar.

Ändrar formeln i tabellen till

=ANTAL.OMF(INDEX(Tabell1[#Alla];;[@Stöd]);C$20;Tabell1[[#Alla];[Kön]];$H$16;Tabell1[[#Alla];[Ålder]];$H$17)

dvs tar bort "=" & från sista argumentet.

 

Ändrar formeln som hämtar värdena från listrutan till:

=OM(G17=5;"<>""""";"=" &INDEX(O3:O6;G17))

dvs flyttar likatecknet dit samt ändrar argumentet när allt ska väljas. Den liknelsen jag har skrivit där nu innebär icke tomma celler.

Länk till kommentar
Dela på andra webbplatser

Inte bara text, även tal.

mmh, alltid lite problematiskt.

 

Då blir det lite ändringar.

Ändrar formeln i tabellen till

=ANTAL.OMF(INDEX(Tabell1[#Alla];;[@Stöd]);C$20;Tabell1[[#Alla];[Kön]];$H$16;Tabell1[[#Alla];[Ålder]];$H$17)

dvs tar bort "=" & från sista argumentet.

 

Ändrar formeln som hämtar värdena från listrutan till:

=OM(G17=5;"<>""""";"=" &INDEX(O3:O6;G17))

dvs flyttar likatecknet dit samt ändrar argumentet när allt ska väljas. Den liknelsen jag har skrivit där nu innebär icke tomma celler.

 

Hatar verkligen att säga så här när du är schysst och hjälper, men jag använder mig inte av tabeller, så skulle du kanske kunna skriva utan tabellkommando?

Länk till kommentar
Dela på andra webbplatser

Samma ändring i gamla formlerna :)

dvs ändra sista argumentet ( i exempelfilen) från

"=" & $H$17

till bara

$H$17

 

men tabellformat rekommenderas.

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