[Excel] Woordbeoordeling omzetten in cijfer

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • inXs
  • Registratie: December 2001
  • Laatst online: 08:26

inXs

known as inXs

Topicstarter
Dag allen, Bij ons op het werk werken we met woordbeoordelingen voor diverse onderdelen in een opdracht. Dit is een O (onvoldoende), V, RV, G en U. Uiteindelijk worden er drie onderdelen gescoord (dus dat wordt een combinatie van bijvoorbeeld: O, V, G of U, V, G, of...).

Uiteindelijk leidt dit alsnog tot een cijfer (leuk systemen waar alleen cijfers in kunnen) en daar is een tabel voor:

Afbeeldingslocatie: https://tweakers.net/i/i2aBlBCdT0gDJdiYLlImG959z-w=/800x/filters:strip_exif()/f/image/FJmoPqqHnW445Q1adpysKsN0.png?f=fotoalbum_large

Nu zou ik graag die handeling willen automatiseren in excel. Dat wanneer ik dus de drie onderdelen met een letter heb gescoord, dat dan het cijfer aan de hand van die tabel eruit komt rollen. Een deel van het probleem is dat er niet een degelijke logica zit achter de cijfers, want anders zou ik wellicht in excel een tabel kunnen maken die als het ware een letter een score meegeeft en dat je dan op de achtergrond zaken op laat tellen om tot een cijfer te komen (bijvoorbeeld op deze manier: https://answers.microsoft...da-4496-9c21-ae0a4ff5e2de )

Dus weet iemand of ik dit kan doen in excel en op welke manier? Mijn zoektocht leidt veelal tot antwoorden zoals ik hierboven al gevonden heb!

superB

Alle reacties


Acties:
  • 0 Henk 'm!

  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 30-09 08:29

Croga

The Unreasonable Man

In een paar trappen, lijkt me....

Eerst een set kolommen maken. Voor iedere mogelijke letter één. De kolom U zou dan zoiets kunnen doen als
COUNTIF(<letterkolom>=U, bereik letterkolommen)

Dan heb je dus voor iedere letter een kolom met het aantal keer dat hij voor komt.
Vervolgens ga je bovenstaande lijstje af van hoog naar laag.
IF({kolom met Us}=>3; 10; IF(AND({kolom met Us}=>2, {kolom met Gs}>=1); 9.5; etc. etc.

let wel: Dit zal veel eenvoudiger kunnen als het in een serieus database systeem gebouwd wordt. Excel is hier niet goed in!

Acties:
  • 0 Henk 'm!

  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
Je zou je tabel anders kunnen opbouwen en dan met de aangepast formule van Croga kunnen werken.

Dat je zo'n formule krijgt
COUNTIF([Kolommen met letters]; "U")&","&COUNTIF([Kolommen met letters]; "G")&","&COUNTIF([Kolommen met letters]; "RV")&"etc

Dan krijg je per optie een getal als
0,0,2,1,0 = 2RV + 1V = 6,5

en dat kan je dan weer in een tabel zetten en met xlookup kan je dan het juiste getal opzoeken.

Acties:
  • +1 Henk 'm!

  • GRDavies75
  • Registratie: December 2014
  • Laatst online: 10:00

GRDavies75

PSN-id: GRDavies

Je hebt te maken met 'maar' een paar categoriën (5) en je hebt met maar 3 inputs te maken en je hebt maar 1 'uitzonderingssituatie', namelijk dat bij een aanwezige onvoldoende het net iets anders werkt.
I
k zou persoonlijk ook ook een vergelijkbare constructie als die van @Eppo © gebruiken. Ik heb altijd een voorkeur gehad om te werken met machten van 10 (en een voorloop 1), dus Uitstekend = 4, Goed = 3,...,Onvoldoende = 0
Het omzetten van van het totaalresultaat := 100000 + Macht(10, vertaling Cel1) + Macht(10, vertaling Cel2) + Macht(10, vertaling Cel3)
De omrekentabel moet je opbouwen met het volgende:
Waarde, Cijfer
130000, 10
121000, 9.5
...
100120, 6
100030, 6
[De onvoldoendes kan je ook invoeren, maar los ik op door de formule vanwege de uitzonderlijke aard]

code:
1
= LET(Totaalwaarde, [b]<celverwijzing met de totaalwaarde>[/b], Restgetal, REST(Totaalwaarde, 10), ALS(Restgetal > 0, 6 - Restgetal, X.Zoeken(Totaalwaarde,Omrekentabel[Waarde],Omrekentabel[Cijfer], "???")))


Zoiets, uiteraard moet je wel de celverwijzingen aanpassen naar de echte cellen en de formule om van U naar 4 te komen mag je ook zelf uitvogelen, maar zo zou ik het aanvliegen als ik alleen Excelformules mag gebruiken.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Dat lijkt idd een kansrijke optie: bereken een totaalwaarde en gebruik die als ingang in een opzoektabel. Als je de puntenschaal omdraait is ook het probleem met de onvoldoendes opgelost.
Stel je berekent de totaalwaarde met Aantal_G + Aantal_RV*10+Aantal_V*100+aantal_O*1000 dan geldt
3000+: 3
2000+: 4
1000+: 5
etc... tot
0: 10

Vergelijkbaar, maar dan in letters, is de resultaatstring (bv UGO) te sorteren en die te gebruiken als ingang in een opzoektabel. Is voor mensen die later eens naar het sheetje kijken makkelijker te doorzien. :) Om het foolproof te maken zou je dan de onvoldoende varianten moeten uitwerken, m.a.w. je opzoektabel wordt iets langer. Wel makkelijker te onderhouden als er ooit iets wijzigt in de vertaaltabel...

[ Voor 39% gewijzigd door Lustucru op 27-05-2025 14:40 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • inXs
  • Registratie: December 2001
  • Laatst online: 08:26

inXs

known as inXs

Topicstarter
Dank voor alle input, ik ben qua exploitaties en dergelijke goed in excel, maar deze formules moet ik even gaan testen. Ik kom even terug als ik een sweet spot gevonden heb!

superB


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Dit schreeuwt om een visual basic functie, iets in de trant van:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function cijfer(c1, c2, c3)

aantalU = Abs((c1 = "U") + (c2 = "U") + (c3 = "U"))
aantalG = Abs((c1 = "G") + (c2 = "G") + (c3 = "G"))
aantalRV = Abs((c1 = "RV") + (c2 = "RV") + (c3 = "RV"))
aantalV = Abs((c1 = "V") + (c2 = "V") + (c3 = "V"))
aantalO = Abs((c1 = "O") + (c2 = "O") + (c3 = "O"))

cijfer = -1
If False Then
    cijfer = 11
ElseIf aantalU = 3 Then
    cijfer = 10
ElseIf aantalU = 2 And aantalG = 1 Then
    cijfer = 9
End If


End Function


Enige potentiele nadeel is dat je een macro-enabled xlsm file moet hebben waarbij de macro's wellicht geblokkeerd worden.

When life gives you lemons, start a battery factory


Acties:
  • +1 Henk 'm!

  • LievenD
  • Registratie: Juli 2005
  • Laatst online: 09:41
En wat als er tweemaal U en éénmaal O wordt gescoord? Is dit dan sowieso 5 op 10?

Acties:
  • 0 Henk 'm!

  • Tribledragon
  • Registratie: Augustus 2009
  • Laatst online: 27-09 13:00
Onvoldoende 10000 punten
VOldoende 1000
Ruim Voldoende 100
Goed 10
Uitstekend 1

Hierdoor komt er een waarde uit kan ook andersom > Waarde is direct op te zoeken / vertalen naar de tabel
tussen 10000-20000 5
tussenn 20000-30000 4
exact 30000 3
3 > 10
12 >95
Zo kan je iedere waarde die er kan komen een cijfer aan hangen en dus omrekentabel creëren

Kan ook met andere waardes, andere volgorde die je logisch lijkt ... uirmuntend 10000 0> alleen nadeel is dat je dan niet zo makkelijk die önvoldoende geeft automaitisch ander cijfer kan creeren (iedere combinatie moet dan een waarde krijgen nu is direct duidelijk hoeveel onvoldoende bij onvoldoende laag getal > kan je nog steeds totaal hoog getal hebben)

Samsung R710 Q9000 geforce 130m


Acties:
  • 0 Henk 'm!

  • HyperTrophy
  • Registratie: December 2000
  • Niet online
Heb je uiteindelijk niet 3x 5 opties ( 5^3 )?
Dus 125 mogelijkheden, waarbij er uiteindelijk 35 unieke combinaties zijn?

[ Voor 4% gewijzigd door HyperTrophy op 27-05-2025 16:49 ]


Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 22:31

Reptile209

- gers -

Waarom alle ingewikkelde opzoektabellen en formules met random waarden? Met dit rijtje:
code:
1
2
3
4
5
U = 10
G = 8.5
RV = 7
V = 5.5
O = 3

kan je ze allemaal domweg uitrekenen als een rekenkundig gemiddelde. Alleen een opzoektabelletje nodig voor de bovenstaande waarden per letter.

Blijven er 3 afwijkingen over (3V en de losse O's), maar daar is de lijst gewoon ook niet consistent. Oplossing: Vul de 1 en 2 O's aan met respectivelijk 2 en 1 V's. Als je alle berekende cijfers < 6 laat afronden naar het eerste hogere gehele getal, klopt het als een bus. :)

Zo scherp als een voetbal!


Acties:
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Reptile209 schreef op dinsdag 27 mei 2025 @ 17:14:
Waarom alle ingewikkelde opzoektabellen en formules met random waarden?
Ik weet niet of jouw oplossing uiteindelijk minder ingewikkeld is dan:
code:
1
=VERT.ZOEKEN(TEKST.COMBINEREN(;;SORTEREN(A1:C1));vertaaltabel;2)

[ Voor 45% gewijzigd door Lustucru op 28-05-2025 12:56 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • +3 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

@Reptile209
Nog even gekeken waar een volledige berekening op uit zou komen. En idd, zonder opzoektabel en met een recht-toe recht-aan logica is het ook prima te doen:
code:
1
=KIEZEN(4-AANTAL.ALS(A1:C1;"O");3;4;5;AFRONDEN.N.VEELVOUD(((AANTAL.ALS(A1:C1;"U")*10+AANTAL.ALS(A1:C1;"G")*8,5+AANTAL.ALS(A1:C1;"RV")*7+AANTAL.ALS(A1:C1;"V")*5,8)/3);0,5))


Met een opzoektabelletje voor de waarden U,G,R,V wordt het nog iets korter:

code:
1
=KIEZEN(4-AANTAL.ALS(A1:C1;"O");3;4;5;AFRONDEN.N.VEELVOUD((SOM(VERT.ZOEKEN(A1:C1;[waardentabel];2;0))/3);0,5))


In mensentaal: kies eerst aan de hand van het aantal onvoldoendes het eindcijfer of berekenen het rekenkundig gemiddelde (waarbij v=5,8) en rond dat af op 0,5.

[ Voor 23% gewijzigd door Lustucru op 30-05-2025 21:58 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1