我在Excel电子表格中有2列。
第一个列标题称为AGE,第二个列标题称为Age_Group。
AGE栏中的年龄介于18至45岁之间。
可能有多个年龄相同的行。
我的任务是确定某个年龄段的年龄组,然后打印出该年龄组。
例如,如果某人的年龄为18岁,我想使用IF语句或CASE语句来确定年龄18在18到24之间,然后将该值放入Age_Group列为18-24。
如果年龄为19岁,它将再次落入Age_Group栏中的18-24岁组。
如果Age列中的年龄介于25到29之间,那么它们将在Age_Group列中显示为25-29。 这是一个例子:
AGE AGE_GROUP
18 18-24
19 18-24,
25 25-29
28 25-29
如果你愿意分享一些代码,我可以用它来计算剩下的代码,直到我们达到45分。
我对Excel VBA不太满意。任何IF或CASE声明的帮助将不胜感激。
答案 0 :(得分:7)
使用vlookup。创建一个两列表,其中第一列中的年龄范围的下限和第二列中的文本的年龄范围如下所示:
AGE_LOOKUP AGE_GROUP
18 18-24
25 25-29
30 30-35
36 36-37 etc..
将此表的范围命名为AGE_GROUP_TABLE,然后使用以下公式获取年龄组:
VLOOKUP(A1, AGE_GROUP_TABLE, 2, TRUE)
将不同年龄放入单元格A1,公式将返回正确的年龄组。要记住的重要一点是确保VLOOKUP的最后一个参数设置为TRUE,这使得VLOOKUP找到最接近的匹配。
答案 1 :(得分:1)
这是一个VBA代码:但是使用Excel VLOOKUP肯定会更好。 :)
复制以下
代码。
Option Explicit
Function whatAgeGroup(ByVal i As Integer) As String
Select Case i
Case IsEmpty(i)
whatAgeGroup = "No Age Entered"
Case 18 To 24:
whatAgeGroup = "18-24"
Case 25 To 29
whatAgeGroup = "25-29"
Case 30 To 34
whatAgeGroup = "30-34"
Case 35 To 39
whatAgeGroup = "35-39"
Case 40 To 44
whatAgeGroup = "40-44"
Case Is >= 45
whatAgeGroup = "45 and Above"
Case Else
whatAgeGroup = "WhatGroup?"
End Select
End Function
答案 2 :(得分:1)
由于桌子的想法引起了一些混乱,我想我也会分享我最喜欢的一个使用嵌入式阵列的自包含,无表格,VLOOKUP的技巧。因此对于当前的问题,它看起来像这样:
VLOOKUP(A1, {18,"18-24";25,"25-29";30,"30-35";36,"36-37"}, 2 TRUE)
答案 3 :(得分:0)
虽然vlookup解决方案非常出色,但您也可以使用数据透视表。确保年龄是行标题,然后右键单击Age“square”并选择Group。这非常容易和动态。