因此,我有一个excel电子表格,它应该可以跟踪成绩,但我似乎不能正确地将字母等级转换为数字等级。我正在尝试将I21:I48中的单元格与G10:G15和I10:I15中的参考字母等级进行匹配,然后用相应的数字等级替换G21:G48。
下面是排列在两行中的转换单元格,以获得良好的格式,这是很难实现的原因之一:
<G> <H> <I> <J>
<10> A 4.0 C 2.0
<11> A- 3.7 C- 1.7
<12> B+ 3.3 D 1.0
<13> B 3.0 F 0.0
<14> B- 2.7 NA 0.0
<15> C+ 2.3 I 0.0
以下是一些示例数据单元格,并对要填充的单元格进行填充:
<G> <H> <I>
<20> GRADE TERM Letter Grade
<21> [FILL] Term 3 A
<22> [FILL] Term 3 A-
<23> [FILL] Term 3 A
<24> [FILL] Term 3 A
<25> [FILL] Term 3 A
<26> [FILL] Term 3 C
<27> [FILL] Term 2 B
<28> [FILL] Term 2 A
...
<48> [FILL] Term 1 A
下面是填充相同图表,使用字母等级列与上面的转换图表进行匹配:
<G> <H> <I>
<20> GRADE TERM Letter Grade
<21> 4.0 Term 3 A
<22> 3.7 Term 3 A-
<23> 4.0 Term 3 A
<24> 4.0 Term 3 A
<25> 4.0 Term 3 A
<26> 2.0 Term 3 C
<27> 3.0 Term 2 B
<28> 4.0 Term 2 A
...
<48> 4.0 Term 1 A
发布于 2016-09-26 06:39:08
=IFERROR(IFERROR(VLOOKUP(I21,$G$10:$H$15,2,FALSE),VLOOKUP(I21,$I$10:$J$15,2,FALSE)),"???")
将其粘贴到G21中并将其填充下来应该能起到作用。
如果您的表是完全连续的,而不是将其拆分成四列而不是两列,这将会更容易,并且需要更少的嵌套。我有第二个IFERROR来显示???
,以防列I中的项实际上不在表中,需要手动调查。
发布于 2016-09-26 06:44:54
你在和一张组织得不好的桌子打架。在G16中输入:
=I10
将此单元格复制到一列,然后向下复制:
现在,您可以在G10:H21
上执行简单的VLOOKUP()
发布于 2016-09-26 20:36:23
这是可行的,但它不是一个工作表解决方案。基本上,循环遍历预定义列中的每个字母等级,并在您告诉它的地方拼写出答案。
Private Sub gradeconversion()
Dim rNg As Range
Dim rCell As Range
Dim vAr As Double
Set rNg = ActiveSheet.Range("i1:i100")
For Each rCell In rNg.Cells
If rCell.Value <> vbNullString Or rCell.Value <> "" Then
Select Case rCell
Case Is = "A"
vAr = 4
Case Is = "A-"
vAr = 3.7
Case Is = "B+"
vAr = 3.3
Case Is = "B"
vAr = 3
Case Is = "B-"
vAr = 2.7
Case Is = "C+"
vAr = 2.3
Case Is = "C"
vAr = 2
Case Is = "C-"
vAr = 1.7
Case Is = "D"
vAr = 1
Case Else
vAr = 0
End Select
rCell.Offset(0, -2).Value = vAr
End If
Next rCell
End Sub
它不是最漂亮的代码,但它能满足你的需求。
https://stackoverflow.com/questions/39692070
复制相似问题