• 1
  • 2
2007-05-22, 22:48
  #1
Medlem
Tjena!

Tänkte hjälpa en kompis med excel. Han jobbar som lärare och skulle vilja att när han rättar prov och skriver in en slutpoäng, så skrivs betyget ut automatiskt.

För enkelhetens skull, låt säga att ett prov har en maxpoäng på 100. Betygskalan ser ut så här:

0-49 = IG
50-74 = G
75-89 = VG
90-100 = MVG

Man fyller i två kolumner, en med elevnamn och en med poäng. Sedan i tredje kolumnen vill man ha betyg, och att betyget skrivs ut automagiskt när man matat in poängen.

Går detta att göra? Hur ser funktionen ut? Har tittat runt en hel del bland excels logiska funktioner men får inte riktigt kläm på det. Hjääääälp! =)
Citera
2007-05-22, 23:18
  #2
Medlem
Tänker mig att formeln skulle kunna se ut nåt sånt här:

=(IF((B11<50)="IG")(IF(50<B11<74)="G")(IF(75<B11>8 9)="VG")(IF(90<B11)="MVG))

Den funkar då inte eftersom jag garanterat gjort något nybörjarmisstag...
Citera
2007-05-23, 12:17
  #3
Medlem
Mjölkbudets avatar
Detta funkar för mig:

Kod:
=if(b11<50; "ig"; if(b11<75;"g"; if(b11<90; "vg"; "mvg")))
Citera
2007-05-23, 13:09
  #4
Medlem
Citat:
Ursprungligen postat av Mjölkbudet
Detta funkar för mig:

Kod:
=if(b11<50; "ig"; if(b11<75;"g"; if(b11<90; "vg"; "mvg")))

Tack! Denna variant kan funka, ska experimentera lite.

Edit: Enda felet med denna typ av formel är att den inte är känslig för felinmatningar. Råkar man få med en bokstav eller dylikt skriver den ut MVG. Skulle även vilja se att den spottar ur sig "Ej giltig poäng" ifall man matar in en felaktig poäng. Men då får min kompis vara noggrann helt enkelt!

Edit2: Nu börjar jag ju känna att min beskrivning av funktionen var alldeles för kass! Jag vill ha det så att det går att korrigera gränserna för G, VG o.s.v. och då uppdateras även samtliga betyg. Nu måste man väl gå in i varje enskild formel och ändra gränserna?

Har också lite problem att få Excel att förstå vilka värden som är "statiska" när man ska duplicera formeln att gälla över flera rader.
Citera
2007-05-23, 13:39
  #5
Medlem
beos avatar
Citat:
Ursprungligen postat av supersmurfigt
Tack! Denna variant kan funka, ska experimentera lite.

Edit: Enda felet med denna typ av formel är att den inte är känslig för felinmatningar. Råkar man få med en bokstav eller dylikt skriver den ut MVG. Skulle även vilja se att den spottar ur sig "Ej giltig poäng" ifall man matar in en felaktig poäng. Men då får min kompis vara noggrann helt enkelt!

Edit2: Nu börjar jag ju känna att min beskrivning av funktionen var alldeles för kass! Jag vill ha det så att det går att korrigera gränserna för G, VG o.s.v. och då uppdateras även samtliga betyg. Nu måste man väl gå in i varje enskild formel och ändra gränserna?

Har också lite problem att få Excel att förstå vilka värden som är "statiska" när man ska duplicera formeln att gälla över flera rader.

ang 2: enklast; ändra i översta formeln och "klicka ner" resten av kolumnen (dvs dubbelklicka på den lilla kvatraten i ramen som markerar cellen med korrekt formel

snyggast; ist för att skriva värdena i IF-formeln, länka till några celler där du skriver ut gränserna. Då får du ju dessutom en fin liten tabell där betygsgränserna framgår.
Citera
2007-05-23, 19:52
  #6
Medlem
Citat:
Ursprungligen postat av beo
ang 2: enklast; ändra i översta formeln och "klicka ner" resten av kolumnen (dvs dubbelklicka på den lilla kvatraten i ramen som markerar cellen med korrekt formel

snyggast; ist för att skriva värdena i IF-formeln, länka till några celler där du skriver ut gränserna. Då får du ju dessutom en fin liten tabell där betygsgränserna framgår.

Som du beskriver "snyggast", så vill jag också ha det. Jag lyckas dock inte få excel att förstå att den ALLTID skall länka vissa värden till en fast cell, utan den flyttar efter alla celler ett steg.

Så här:

Formel som funkar: =OM(B7<B2;A1;OM(B7<B3;A2;OM(B7<B4;A3;A4)))

Nästföljande cell får då denna formel: =OM(B8<B3;A2;OM(B8<B4;A3;OM(B8<B5;A4;A5)))

Statiska värden från första formeln är: B2, A1, B3, A2, B3, A3 och A4. Dessa flyttas alla efter ett steg när jag försöker duplicera formeln, vilket gör att uträkningen av betyget blir fel.
Citera
2007-05-23, 20:08
  #7
Medlem
Citat:
Ursprungligen postat av supersmurfigt
Tack! Denna variant kan funka, ska experimentera lite.

Edit: Enda felet med denna typ av formel är att den inte är känslig för felinmatningar. Råkar man få med en bokstav eller dylikt skriver den ut MVG. Skulle även vilja se att den spottar ur sig "Ej giltig poäng" ifall man matar in en felaktig poäng. Men då får min kompis vara noggrann helt enkelt!

Du kan kolla vilken typ av värde som finns i en cell med =värdetyp(värde). Den returnerar 1 för tal och 2 för text. Vad kommandot heter på engelska har jag ingen aning om. Stoppa in det i din if-sats så borde du kunna styra bort felinmatningar.

Du får ursäkta att jag använder svenska formler, men jag kör med svensk excel:

Kod:
=OM(B11<>"";OM(VÄRDETYP(B11)=1;OM(B11<50; "ig"; OM(B11<75;"g"; OM(B11<90; "vg"; "mvg")));"felaktigt värde");"inget värde")

den här koden ger dig betyg + upplysning om felaktigt värde (text istället för tal) och varnar också för tomma celler.

Du kan ju skippa innehållet i den yttersta parentesen (b11<>"";...;"inget värde") om du är säker på att din kompis stoppar in värden överallt.

Edit: du ställer ju nya frågor medan jag klurar

Du låser cellreferenser med dollartecken. Om du alltid vill att en referens ska peka på t.ex. B11 så skriver du $B$11. Då kan du kopiera formeln utan att referensen ändras.
Citera
2007-05-23, 20:20
  #8
Medlem
Citat:
Ursprungligen postat av onebigmob
Du kan kolla vilken typ av värde som finns i en cell med =värdetyp(värde). Den returnerar 1 för tal och 2 för text. Vad kommandot heter på engelska har jag ingen aning om. Stoppa in det i din if-sats så borde du kunna styra bort felinmatningar.

Du får ursäkta att jag använder svenska formler, men jag kör med svensk excel:

Kod:
=OM(B11<>"";OM(VÄRDETYP(B11)=1;OM(B11<50; "ig"; OM(B11<75;"g"; OM(B11<90; "vg"; "mvg")));"felaktigt värde");"inget värde")


Jag kör svensk excel, så att du kör svensk kod är helt OK! Hade hämtat inspiration från ett engelskt forum ovan.

Citat:
Ursprungligen postat av onebigmob
den här koden ger dig betyg + upplysning om felaktigt värde (text istället för tal) och varnar också för tomma celler.

Du kan ju skippa innehållet i den yttersta parentesen (b11<>"";...;"inget värde") om du är säker på att din kompis stoppar in värden överallt.

Edit: du ställer ju nya frågor medan jag klurar

Du låser cellreferenser med dollartecken. Om du alltid vill att en referens ska peka på t.ex. B11 så skriver du $B$11. Då kan du kopiera formeln utan att referensen ändras.

Tack! Jag ska genast testa dina tips. Återkommer efter lite labbande =)
Citera
2007-05-23, 20:38
  #9
Medlem
Citat:
Ursprungligen postat av onebigmob
Massa bra saker

Enormt tack till dig, beo och mjölkbudet! Fungerade klockrent!

Det _enda_ som saknas är nu egentligen en funktion som känner av att man matat in ett högre värde än provets maxpoäng. Skulle man råka pilla in ett extra tal blir det MVG. Låt säga att Pelle ska ha 19 poäng men det råkar bli 199, då får han MVG där han ska ha IG.

Så här ser formeln ut just nu:

=OM(B7<>"";OM(VÄRDETYP(B7)=1;OM(B7<$B$2; $A$1; OM(B7<$B$3;$A$2; OM(B7<$B$4; $A$3; $A$4)));"felaktigt värde");"inget värde")

Förresten, är det praxis att skriva kodsnuttar inom CODE-taggar? Blir mindre läsbart tycker jag =)
Citera
2007-05-23, 21:04
  #10
Medlem
Citat:
Ursprungligen postat av supersmurfigt
Enormt tack till dig, beo och mjölkbudet! Fungerade klockrent!

Det _enda_ som saknas är nu egentligen en funktion som känner av att man matat in ett högre värde än provets maxpoäng. Skulle man råka pilla in ett extra tal blir det MVG. Låt säga att Pelle ska ha 19 poäng men det råkar bli 199, då får han MVG där han ska ha IG.

Så här ser formeln ut just nu:

=OM(B7<>"";OM(VÄRDETYP(B7)=1;OM(B7<$B$2; $A$1; OM(B7<$B$3;$A$2; OM(B7<$B$4; $A$3; $A$4)));"felaktigt värde");"inget värde")

Kod:
=OM(B7<>"";OM(VÄRDETYP(B7)=1;OM(B7<$B$2; $A$1; OM(B7<$B$3;$A$2; OM(B7<$B$4; $A$3; OM(B7>$B$5;"Nu tog du i för mycket"; $A$4))));"felaktigt värde");"inget värde")

Lägg in provets maxpoäng i B5.

Du kan nästla in fler om-satser om det behövs, men jag har för mig att excel har en maxgräns på sju nästlade satser, så snart är ditt utrymme slut
Citera
2007-05-23, 21:14
  #11
Medlem
Perfekt! Borde jag kunnat lista ut själv om jag använt skallen lite. Men man är lite seg efter jobbet =)

Tack för all hjälp, man blev lite klokare på excel på kuppen!
Citera
2007-05-24, 01:30
  #12
Medlem
Kvackelikvacks avatar
Nej, nej nej. Gör om gör rätt.
Du gör naturligtvis som du vill men det är skitjobbigt att mata in så mycket sak i alla rader även om du använder "Fyll…". Och stor risk att det blir fel.
Vad du vill ha är en Leta-funktion. Jättejobbigt att byta betygsgränser.
Jag matar in följande tabelll i arket:
(Edit: Det ser skitdåligt ut, vet ej hur man får snygga kolumner i texten. Alla mellanslag försvinner. Jag hoppas det går att förstå var en cell slutar och nästa börjar)
Intervall Betyg
0 U
50 G
75 VG
90 MVG
1000 FEL!

Sista raden är bara med som markör. Markera allt detta (12 celler), välj Namn och Definiera (Infoga menyn). Mata in namnet "Betygstabell" (utan citationstecken).
Mata in dina elever någon annan stans
Namn Resultat Betyg
Putte 49
Lisa 50
Hugo 74
osv

I Puttes Betygs-cell matar du in följande (byt ut "B2" mot Puttes resultat cell i ditt ark)
=LETARAD(B2;Betygstabell;2) (sista "2" betyder skriv in värdet i andra kolumnen i området Betygstabell)
Markera Puttes betygscell, alltså den cell du just matade in denna formel i. Markera alla celler ned till cellen till höger om sista elevens resultat (i mitt exempel alltså Hugos betygscell, 3 celler markerade). Välj Redigera-Fyll-Ned. Om du gjort allt rätt får nu eleverna sina betyg ("B2" byts ut mot cellen under "B2", betygstabell står kvar). Varsågod. Ändra betygsgränser? Bara att ändra i betygstabellen.

P.S. Turf? Jobbar du inom transport-sektorn?
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in