BEGINNER USER: Assigning Values to Letters in Multiple Columns

Apalm

New Member
Joined
Nov 10, 2017
Messages
4
Hi, please note that I am a novice excel user, so very explicit directions are appreciated.

I am hoping to track students' reading level progression through the duration of the school year with an excel spreadsheet so it can be easily visually represented with a line plot. Fountas and Pinnell reading levels are assigned letters (i.e. beginning readers are A, B, C, and more advanced readers are X, Y, Z).

Ideally, column A is for students' names, B is for the baseline reading level, C is Quarter 1, D is Quarter 2, E is Quarter 3, and F is Quarter 4.

If possible, I want column G to show a numerical progression that expands its field of input as more data is added (e.g. as the quarters progress). For example, if a student's baseline (column B) is N, and their quarter 1 level is R (column C), I want column G to indicate "4" for the four levels the student has progressed. But then, at the end of quarter 2 (column D) with a level of S, I want column G to indicate the difference between column D and B. And so on...

Then I want column H to indicate (with color coding) whether the student is on, above, approaching, or below grade level based on the most recent data point, or just column F (e.g. in fourth grade, students are expected to be reading at a Q, R, or S level. Therefore, based on the most recent Quarter or the end of quarter 4, I want column H to indicate A through M to be "below grade level," N through P to be "approaching grade level," Q through S to be "on grade level," and T through Z be "above grade level."

Also, I want to plot the reading level progression for each student on a line graph.

Therefore, to complete the desired functions in columns G and H and pull the data for a graph, I am assuming that the letters used to represent reading levels in columns B through F need to be assigned numerical values. How do I accomplish this?!

THANK YOU!!!
 

Excel Facts

Quick Sum
Select a range of cells. The total appears in bottom right of Excel screen. Right-click total to add Max, Min, Count, Average.
1st part...
[Table="width:, class:grid"][tr][td] [/td][td]
B​
[/td][td]
C​
[/td][td]
D​
[/td][td]
E​
[/td][td]
F​
[/td][td]
G​
[/td][/tr]
[tr][td]
4​
[/td][td]N[/td][td]R[/td][td]k[/td][td]x[/td][td][/td][td]
10​
[/td][/tr]
[/table]

G4=CODE(UPPER(LOOKUP(2,1/(B4:E4<>0),B4:E4)))-CODE(UPPER($B4))
This 1st finds whatever is the last entry in that row
=CODE(UPPER(LOOKUP(2,1/(B4:E4<>0),B4:E4)))-CODE(UPPER($B4))
Then converts that to upper case (in case some1 enters lower case)
=CODE(UPPER(LOOKUP(2,1/(B4:E4<>0),B4:E4)))-CODE(UPPER($B4))
Finally, it finds the ascii code for that letter...
=CODE(UPPER(LOOKUP(2,1/(B4:E4<>0),B4:E4)))-CODE(UPPER($B4))

We repeat the last 2 steps for the column B entry...
=CODE(UPPER(LOOKUP(2,1/(B4:E4<>0),B4:E4)))-CODE(UPPER($B4))
Then subtract to give the difference.

If that works for you, we can move to the next part?
 
Upvote 0
Wow, thank you so much! Yes, it works -- thank you for taking the time to also explain it.
 
Upvote 0
OK great :)

next step, I think for the color coding, maybe we could use Conditional Formatting, using Icon Sets. Take a look under Home tab/Conditional Formatting/Manage Rules/New Rule - look under the 1st rule and play around with some of the options there
 
Upvote 0
Okay. Using conditional formatting, I was able to play around and color code the columns B through F appropriately based on the reading level input, but I actually prefer just H to be color coded and have a text output based on the input in B through F. I am struggling to make column H pull from that data in the preceding columns. Sort of like how G pulls the data from the most recent column to find its difference from B, I want H to pull from the most recent column of B through F to decide, depending on the letter entry, if the student is below, approaching, on, or above grade level. I hope I'm explaining it clearly enough.

I tried an if statement using part of the code you provided above, but it (probably obviously to you) is not correct. It was also based on the assumption that A=1, B=2, and so on, but it's apparently not that simple.

H4=If(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))<=13, "Below Grade Level", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade")
 
Upvote 0
Apologies for the delayed reply.

Unfortunately, CF Icon sets can only really be applied to the cell they are in, they cannot be used to refer to other cells, unlike the rest of the rules. 1 way around that would be to use H as helper that just directly references G, then use Icon sets on that (IF I understand you correctly)
Regarding the formula you used...
H4=If(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))<=13, "Below Grade Level", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade")

You were ALMOST there, you just left out (probably unknowingly) the part that code(upper("a")) is 65, so you need to subtract 65 (64?) from whatever value that formula gives you, so you can then compare it against the "grade" values

I can see a few missing IF's in your formula. IF has 3 arguments...
=IF(what-you-want-to-test, what-to-do-if-TRUE, what-to-do-if-FALSE)
in other words...
=IF(2=1+1,"say yes", "say no")

In your formula, you have a couple of extra arguments in there. Breaking each argument out into it's own row (of text, here) often helps to clarify things...
H4=
If(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))<=13,
"Below Grade Level",
CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade")
You can see from that (I hope) that the 3rd argument is not really a "what-to-do" statement, it is the start of the next IF statement. You repeat this again for the next part, too.

H4=If(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))<=13, "Below Grade Level", IF( CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", IF( CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", IF( CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade", ""))))

However, the whole logic is wrong, the way you have that set up. Think about what that is asking? Assume a value of 20
your 1st IF tests for <=13, so that test will fail
move to the next test
your next test is >13, well 20 IS > 13, so that argument is then fulfilled and the formula stops. It never gets to test for >16, let alone >19.

For this type of testing, I normally start my tests from large to small...
H4=if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", "Below Grade Level")))

You will see that I did not even bother to add the last test, it is not really needed. Perhaps you may want to add an initial test to see if B4 is empty (don't want to show results on an empty row, do we?) So that then becomes...
H4=if(B4="","",if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", "Below Grade Level"))))

Now, having said all that, I would probably not even use all those nested IF statements, I would use a small table and then use a single vlookup, that way you can change the values/comments/ranges, without needing to update the formulas.
If this would interest you, let me know, we can work on it
 
Upvote 0
However, the whole logic is wrong, the way you have that set up. Think about what that is asking? Assume a value of 20
your 1st IF tests for <=13, so that test will fail
move to the next test
your next test is >13, well 20 IS > 13, so that argument is then fulfilled and the formula stops. It never gets to test for >16, let alone >19.
I thought that sequencing seemed backward, but I was attempting to follow a pattern I found in another sheet that has something similar. However, now given your explanation, I can see my misunderstanding. This makes sense!

I've started entering the data for my students, and I'm already really pleased with what's put together so far -- thank you so much. However, when I used the code,
H4=if(B4="","",if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>19, "Above Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>16, "On Grade", if(CODE(UPPER(LOOKUP(2,1/(B4:F4<>0),B4:F4)))>13, "Approaching", "Below Grade Level"))))
every cell read "Above Grade" regardless of their reading level. Does this have to do with the 2,1 portion in the Lookup parenthesis? I'm still not sure what that means. I just spent about an hour using trial and error to fix it, but haven't been successful. Again, most of what you have proffered is really above my current understanding and ability. My previous excel experience is using a spreadsheet as an address book and a google form/sheet to record students' behaviors :eeek: -- I can't thank you enough for your help on this project!

Getting the data to translate to below/on/above grade level will be meaningful to my administrators, and I know getting the data points on a line graph will be appreciated! I will defer to your expertise if you think these IF statements are not the most efficient. I'm definitely interested in trying the table and vlookup if that's what you recommend.

I have never heard of a vlookup before, so I read this page: https://support.office.com/en-us/article/VLOOKUP-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1

Based on that, I tried creating a table as follows:
I J K L M N O P Q R S T U V
[TABLE="width: 608"]
<colgroup><col><col><col span="12"></colgroup><tbody>[TR]
[TD]Mastery [/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Below Grade[/TD]
[TD]A[/TD]
[TD]B[/TD]
[TD]C[/TD]
[TD]D[/TD]
[TD]E[/TD]
[TD]F[/TD]
[TD]G[/TD]
[TD]H[/TD]
[TD]I[/TD]
[TD]J[/TD]
[TD]K[/TD]
[TD]L[/TD]
[TD]M[/TD]
[/TR]
[TR]
[TD]Approaching[/TD]
[TD]N[/TD]
[TD]O[/TD]
[TD]P[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]On Grade[/TD]
[TD]Q[/TD]
[TD]R[/TD]
[TD]S[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Above Grade[/TD]
[TD]T[/TD]
[TD]U[/TD]
[TD]V[/TD]
[TD]W[/TD]
[TD]X[/TD]
[TD]Y[/TD]
[TD]Z[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
</tbody>[/TABLE]

and then
H4=VLOOKUP(H4,I3:V6, 1, FALSE)

I get an error code that this is "circular reasoning."
 
Upvote 0

Forum statistics

Threads
1,223,229
Messages
6,170,881
Members
452,364
Latest member
springate

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top