【问题标题】:Excel - Group Ages into predefined CategoriesExcel - 将年龄分组为预定义的类别
【发布时间】:2012-07-31 12:35:20
【问题描述】:

我将这些分组与我在一个列中使用的一些人口数据(称之为 Data1):

10 至 14 岁 15至17岁 18 岁和 19 岁 20年 21 年 22 至 24 岁 25 至 29 岁 30 至 34 岁 35 至 39 岁 ... 85岁及以上 全部的

我还有另一条数据(称之为 Data2),我正在使用它而不是分组,只是按年龄从 1 到 100 的人口。

我需要将 data2 分组到与 data1 相同的分组中,

我开始使用 Excel 公式(使用 IF 语句),但有 24 个不同的年龄组,所以我很快就放弃了。

有没有更简单的方法来使用公式/vba/其他方式?

【问题讨论】:

  • 谢谢迈克。只是跟进,您最终使用了我的回答中的哪个解决方案?

标签: excel vba grouping excel-formula


【解决方案1】:

如果我了解您的数据,似乎 Data2 是年龄的原始列表,而 Data1 是分箱数据。

您可以通过数组公式将原始年龄数据移动到绑定中

=FREQUENCY(<bins>,<Data2>)

你的垃圾箱在哪里

10
15
18
20
21
22
25
30
35
40
45
50
55
60
65
70
75
80
85

如果我的第一个猜测不是你想要的,你可以试试这个 UDF...

Public Function Between(inputCell As Range, twoColBetweenRage As Range, outputLabel As Range)

    If twoColBetweenRage.Rows.Count <> outputLabel.Rows.Count Then
        Err.Raise 12345, "", "Input ranges are not equally sized"
        Exit Function
    End If

    Dim r As Integer, inputValue As Double
    inputValue = inputCell.Value
    For r = twoColBetweenRage.Row To twoColBetweenRage.Rows.Count
        If twoColBetweenRage(r, 1) <= inputValue And twoColBetweenRage(r, 2) >= inputValue Then
            Between = outputLabel(r, 1)
            Exit Function
        End If
    Next r

    If IsEmpty(Between) Then
        Err.Raise 12345, "", "No value was found"
        Exit Function
    End If

End Function

【讨论】:

    【解决方案2】:

    如果您构建一个两列查找表,您可以使用一个简短的公式,例如在 Y2 向下按升序排列每个范围的下限,例如10 在 Y2 中,15 在 Y3 中,18 在 Y4 中等等。然后在 Z 列的相应行中,您可以放置​​组文本,例如Z2 “10 到 14 年” Z3、“15 到 17 年”

    现在对于 A1 中的特定年龄,您可以使用此公式获得正确的组

    =LOOKUP(A1,$Y$2:$Z$25)

    【讨论】:

      【解决方案3】:

      如果您运行的是 excel 2007 或更高版本,则有 COUNTIF 可用。

      10 到 14 年 =COUNTIF(Data2,"&gt;=10",Data2,"&lt;=14")
      15至17岁=COUNTIF(Data2,"&gt;=15",Data2,"&lt;=17")
      18岁和19岁=COUNTIF(Data2,"&gt;=18",Data2,"&lt;=19")
      20年=COUNTIF(Data2,"=20")
      21年=COUNTIF(Data2,"=21")

      等等……

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-31
        • 2020-10-08
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多