0

我在 Excel 电子表格中有 2 列。

第一列标题称为 AGE,第二列标题称为 Age_Group。

AGE 列中的年龄介于 18 到 45 岁之间。

可能有多行具有相同的年龄。

我的任务是确定某个年龄属于哪个年龄组,然后打印出该年龄组。

例如,如果某人的年龄是 18 岁,我想使用 IF 语句或 CASE 语句来确定 18 岁在 18 到 24 之间,然后将该值作为 18-24 放入 Age_Group 列。

如果年龄为 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 声明的帮助将不胜感激。

4

4 回答 4

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 找到最近的匹配项。

于 2013-01-03T17:00:09.523 回答
1

由于表格的想法引起了一些混乱,我想我也会分享我最喜欢的使用嵌入式数组的自包含、无表格、VLOOKUP 的技巧。所以对于当前的问题,它看起来像这样:

VLOOKUP(A1, {18,"18-24";25,"25-29";30,"30-35";36,"36-37"}, 2 TRUE)
于 2013-01-03T20:52:10.770 回答
1

这是一个 VBA 代码:但使用 Excel VLOOKUP 肯定会更好。:)

  1. 首先将模块添加到 VBA 项目

  2. 复制以下内容

代码。

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
  1. 在单元格中输入函数名称并输入,如图所示。
于 2013-01-03T17:12:43.853 回答
0

虽然 vlookup 解决方案非常出色,但您也可以使用数据透视表来做到这一点。确保年龄是行标题,然后右键单击年龄“正方形”并选择组。这是非常容易和动态的。

于 2013-01-03T20:17:37.423 回答