---
title: "Procent"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/51740-procent"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "jonas76"
published: "2002-08-30T12:15:32.000Z"
updated: "2002-10-01T09:35:33.000Z"
replies: 14
views: 515
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/51740-procent"
---

# Procent

## #1 — jonas76, 2002-08-30T12:15Z

Hej

Skulle behöva lite hjälp med följande kod , den fungerar som så om alla frågor (20 st) är besvarade med tex 2:an så blir procenten ca 67 är all besvarade med 3:an 100 är alla besvarade med 1:an 33 och 0:an 0 procent och dett funkar jätte bra men nu skull jag vilja ha det så att om all frågor besvaras med 2:an skall procentsatsen bli 85% , kan någon vänlig själ hjälpa mig med detta så vore jag väldigt tacksam.

 
   for num = 1 to 2
       vtemp = request.form("nr" & num) 
       select case vtemp
       case "0", "1", "2", "3"
           antal = antal + 1
		   summa1 = summa1 + CInt(vtemp)
		   end select
		   
	   next  
		   
   for num = 3 to 8 
       vtemp2 = request.form("nr" & num) 
       select case vtemp2 
       case "0", "1", "2", "3" 
           antal2 = antal2 + 1 
           summa2 = summa2 + CInt(vtemp2) 
       end select 
	   
   next 
   
    for num = 9 to 11
       vtemp3 = request.form("nr" & num) 
       select case vtemp3 
       case "0", "1", "2", "3" 
           antal3 = antal3 + 1 
           summa3 = summa3 + CInt(vtemp3) 
       end select 
	   
   next
   
   for num = 12 to 20
       vtemp4 = request.form("nr" & num) 
       select case vtemp4 
       case "0", "1", "2", "3" 
           antal4 = antal4 + 1 
           summa4 = summa4 + CInt(vtemp4) 
       end select 
	   
   next
   
   proc1 = Round((summa1 \* 100 / 3)/antal, 2)
   proc2 = Round((summa2 \* 100 / 3)/antal2, 2)
   proc3 = Round((summa3 \* 100 / 3)/antal3, 2)
   proc4 = Round((summa4 \* 100 / 3)/antal4, 2)
   totalproc = Round ((proc1 -- proc2 -- proc3 -- proc4) / 4)

Permalänk: https://www.webforum.nu/p/51740

## #2 — solbulle, 2002-08-30T14:06Z

En smula offtopic, men varför vill du få det till 85% ???

Permalänk: https://www.webforum.nu/p/768841

## #3 — jonas76, 2002-08-30T14:21Z

Hej

Det är mest en utsende/statestik sak , vi jobbar efter en standar som skall ligga på 85% och alla 2:or skall motsvara det värdet, för 67 låter helt enkelt för dåligt.

Permalänk: https://www.webforum.nu/p/768860

## #4 — jonas76, 2002-09-30T06:32Z

Hej

Finns det ingen som har någon idé , fråga gärna om det är något som är oklart , är i stort behov av hjälp.
Det jag vill är alltså att ändra det som ger värdet 67% till att det ger 85% istället.

Permalänk: https://www.webforum.nu/p/803013

## #5 — solbulle, 2002-09-30T12:27Z

Du kan banne mig inte kalla det för 85% då! Kalla det vad du vill men inte procent, eftersom det blir ju direkt felaktigt. (Om jag inte missuppfattar det hela.)

Hur som helst kanske du kan lösa det med en riktig fullösning genom att kolla värdet du får fram och om det är runt 65 så ändrar du till 85.

```
If totalproc > 60 AND totalproc < 70 then totalproc = 85
```

Fast det tar iofs inte hänsyn till om man bara svarat med 2:or...

Permalänk: https://www.webforum.nu/p/803299

## #6 — jonas76, 2002-09-30T12:46Z

Tack för att du tar dig tid , jag fick en idé utav ditt inlägg men jag vet inte om det fukat i "verklighete" men skulle man kunna modifiera följande :

select case vtemp
case "0", "1", "2", "3" 
till:
select case vtemp
case "0", "1", "2", "3"  If "2" \> 60 AND totalproc \< 70 then 2 = 85

Kodningen kanske inte blev så lyckad men du kankse förstår ändå hur jag tänker.

Kan man göra något liknande ?

Permalänk: https://www.webforum.nu/p/803308

## #7 — solbulle, 2002-09-30T12:51Z

```
select case vtemp 
case "0", "1", "3" 
antal = antal + 1 
summa1 = summa1 + CInt(vtemp)
case "2"
'gör vad du vill om det är två som är valt
end select
```

Permalänk: https://www.webforum.nu/p/803312

## #8 — solbulle, 2002-09-30T12:53Z

Använder du dig av alla procentresultaten? (proc1, proc2 osv.) eller bara totalproc?

Permalänk: https://www.webforum.nu/p/803317

## #9 — jonas76, 2002-09-30T12:58Z

jo jag använder dom oxå, jag postar lite mer av min kod så kankse det hjläper till mer idér:

dim ar, manad, dag, vecka, anstnr, fnamn, enamn, konto, land, mentor, nr1, nr2, nr3, nr4, nr5, nr6, nr7, nr8, nr9, nr10, nr11, nr12, nr13, nr14, nr15, nr16, nr17, nr18, nr19, nr20, kommentar, proc1, proc2, proc3, proc4, antal, antal2, antal3, antal4, summa1, summa2, summa3, summa4, vtemp, vtemp2, vtemp3, vtemp4, totalproc

	ar = request.form("ar")
	manad = request.form("manad")
	dag = request.form("dag")
	vecka = request.form("vecka")
	anstnr = request.form("anstnr")
	fnamn = request.form("fnamn")
	enamn = request.form("enamn")
	konto = request.form("konto")
	land = request.form("land")
	mentor = request.form("mentor")
	nr1 = request.form("nr1")
	nr2 = request.form("nr2")
	nr3 = request.form("nr3")
	nr4 = request.form("nr4")
	nr5 = request.form("nr5")
	nr6 = request.form("nr6")
	nr7 = request.form("nr7")
	nr8 = request.form("nr8")
	nr9 = request.form("nr9")
	nr10 = request.form("nr10")
	nr11 = request.form("nr11")
	nr12 = request.form("nr12")
	nr13 = request.form("nr13")
	nr14 = request.form("nr14")
	nr15 = request.form("nr15")
	nr16 = request.form("nr16")
	nr17 = request.form("nr17")
	nr18 = request.form("nr18")
	nr19 = request.form("nr19")
	nr20 = request.form("nr20")
	kommentar = request.form("kommentar")
 
   for num = 1 to 2
       vtemp = request.form("nr" & num) 
       select case vtemp
       case "0", "1", "2", "3"
           antal = antal + 1
		   summa1 = summa1 + CInt(vtemp)
		   end select
		   
	   next  
		   
   for num = 3 to 8 
       vtemp2 = request.form("nr" & num) 
       select case vtemp2 
       case "0", "1", "2", "3" 
           antal2 = antal2 + 1 
           summa2 = summa2 + CInt(vtemp2) 
       end select 
	   
   next 
   
    for num = 9 to 11
       vtemp3 = request.form("nr" & num) 
       select case vtemp3 
       case "0", "1", "2", "3" 
           antal3 = antal3 + 1 
           summa3 = summa3 + CInt(vtemp3) 
       end select 
	   
   next
   
   for num = 12 to 19
       vtemp4 = request.form("nr" & num) 
       select case vtemp4 
       case "0", "1", "2", "3" 
           antal4 = antal4 + 1 
           summa4 = summa4 + CInt(vtemp4) 
       end select 
	   
   next
   
   proc1 = Round((summa1 \* 100 / 3)/antal, 2)
   proc2 = Round((summa2 \* 100 / 3)/antal2, 2)
   proc3 = Round((summa3 \* 100 / 3)/antal3, 2)
   proc4 = Round((summa4 \* 100 / 3)/antal4, 2)
   totalproc = Round ((proc1 -- proc2 -- proc3 -- proc4) / 4)
   
	set connection = server.createobject("adodb.connection")
	connection.open "dsn=cmt1"

	stm = "insert into cm1 (ar,manad,dag,vecka,anstnr,fnamn,enamn,konto,land,mentor,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9,nr10,nr11,nr12,nr13,nr14,nr15,nr16,nr17,nr18,nr19,nr20,kommentar,proc1,proc2,proc3,proc4,totalproc)"
	stm = stm& "values('"&ar&"','"&manad&"','"&dag&"','"&vecka&"','"&anstnr&"','"&fnamn&"','"&enamn&"','"&konto&"','"&land&"','"&mentor&"','"&nr1&"','"&nr2&"','"&nr3&"','"&nr4&"','"&nr5&"','"&nr6&"','"&nr7&"','"&nr8&"','"&nr9&"','"&nr10&"','"&nr11&"','"&nr12&"','"&nr13&"','"&nr14&"','"&nr15&"','"&nr16&"','"&nr17&"','"&nr18&"','"&nr19&"','"&nr20&"','"&kommentar&"','"&proc1&"','"&proc2&"','"&proc3&"','"&proc4&"','"&totalproc&"')"

Permalänk: https://www.webforum.nu/p/803322

## #10 — jonas76, 2002-09-30T13:09Z

Men kan jag göra som så att jag ädrar koden på den sidan som jag postar i så att svaren får"value" med  0, 33, 85, 100 istället för 0,1,2,3 och sedan göra om den koden som jag postat tidigare i inlägget, skulle det funka/ funka bättre?

Permalänk: https://www.webforum.nu/p/803337

## #11 — solbulle, 2002-09-30T13:20Z

En liten funktion kanske:

```
Function fusk(variabel)
If variabel> 60 AND variabel< 70 then
fusk = 85
Else
fusk = variabel
End if
End Function
```

Samt att du ändrar de rader du vill fixa till:

```
proc1 = fusk(Round((summa1 * 100 / 3)/antal, 2))
proc2 = fusk(Round((summa2 * 100 / 3)/antal2, 2))
```

Permalänk: https://www.webforum.nu/p/803358

## #12 — jonas76, 2002-09-30T13:37Z

det funkar till viss del, har jag alla 2 or så får jag 85, men om jag tex i först gruppen (proc1) som bara har 2 frågor väljer en 3:a och en 2:a så blir värdet där 83.3, och det är väl troligt vis bara för att då räknar han med 2:an som 67 skulle jag tro.

Permalänk: https://www.webforum.nu/p/803383

## #13 — jonas76, 2002-09-30T13:43Z

Men hur verkar det om jag har "procenten" i value när jag skickar till denna sidan, kan jag inte då bara räkna ihop värdena och sedan dela med antalet frågor, eller är jag helt ute och cyklar nu?
hur skulle koden i sådana fall se ut där jag summerar och delar med antalet frågor?

Permalänk: https://www.webforum.nu/p/803394

## #14 — Toonster, 2002-09-30T16:22Z

Om det ändå inte verkar vara så viktigt med rätt procentsats...
Slumpa den istället... ;)

Permalänk: https://www.webforum.nu/p/803543

## #15 — jonas76, 2002-10-01T09:35Z

Hej 

tack för alla idér och förslag , jag har nu löst det med att jag skickar svaren direkt i procent tex: \<input type="RADIO" name="nr1" value="0"\>1:\<input type="RADIO" name="nr1" value="33"\>2:\<input type="RADIO" name="nr1" value="85" checked\>3:\<input type="RADIO" name="nr1" value="100" \>

där respektive "value" har sin "procent sedan gör jag så här:

for num = 1 to 2
       vtemp = request.form("nr" & num) 
       select case vtemp
       case "0", "33", "85", "100"
           antal = antal + 1
		   summa1 = summa1 + CInt(vtemp)
		   end select

och sedan:
  proc1 = Round((summa1)/antal, 2)

då funkar det :)

Tack igen!

Permalänk: https://www.webforum.nu/p/804342

---

Tråden på webben: https://www.webforum.nu/amne/asp/51740-procent
