2013-01-03 70 views
0

我在Excel电子表格中有2列。任何想法如何确定个人在Excel中属于哪个年龄段?

第一列标题被称为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

你想要基于VBA或Excel公式的解决方案吗? :) – bonCodigo

+0

嗨@bonCodigo,谢谢你的回复。两种解决方案都可以。如果公式更简单,那么很好。否则,vba很好。 –

+0

请看'VBA'解决方案然后:)你需要做的是,只需输入'Age'作为函数参数,它就会返回'Age Group'。非常基本的功能,所以没有太多的错误处理完成。让我知道它是否适合你。试试这个单元格= = whatagegroup(E7)' – bonCodigo

回答

1

这里是一个VBA代码:但是肯定你最好用Excel VLOOKUP。 :)

  1. 第一个add module to a VBA project

  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. 在一个单元格中输入函数名称并输入,按照所示的图像。
+0

但是@bonCodigo,除非我误解了Dave,否则我需要创建一个数据库表? 如果有人愿意解释VLookup的工作原理,我很乐意使用它。 –

+0

你想创建一个数据库表?他只是说你需要[命名范围](http://www.contextures.com/xlNames01.html),并使用'named range'作为你的数据范围来查找:)在'VBA case'你有一个所有年龄段的专栏,你需要做的就是将这个单元格输入到函数中,然后输入:)然后它会根据你在'case'语句中设置的内容给你相关的'Age_Group'。 – bonCodigo

+0

感谢您的帮助和耐心。我尝试了这个功能,但它没有做任何事情。只是为了确保我正确使用它,我把它称为如下:whatAgeGroup(age)?并将该代码放在Age_Group列下的第一行。我是否正确使用它? 我也尝试了vlookup。首先,我将excel工作簿命名为Age_Group_Table。然后我在Age_group列下的第一列使用VLOOKUP(A1,AGE_GROUP_TABLE,2,TRUE)。它也没有做任何事情。我相信这是一个用户错误。 –

6

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

+0

该文件是发送给我们在Excel工作表。我们不想创建一个表,并且它们是随机的。你可以在第一行看到18,然后在第15行看到另一个。 –

+1

@ChidiOkeh - >你不需要像Access那样创建一个'Table'。你只需要在Excel中创建一个表格,这个表格表示一个包含两列(带有标题)和数据行的数据结构。如果你将数字18 - 37(或者高)放在行的下面,并按照Dave的方法将年龄组放在他们的旁边,那么你可以使用'vlookup'来查找该组。使用Excel帮助或谷歌了解有关vlookup。 –

0

虽然vlookup解决方案非常出色,但您也可以使用数据透视表执行此操作。确保年龄是行标题,然后右键单击Age“square”并选择Group。这非常简单和动态。

1

由于表的想法造成了一些混淆,我想我也会分享我最喜欢的一个自包含,表免费,使用嵌入式数组的VLOOKUP技巧。所以对于目前的问题,它看起来像这样:

VLOOKUP(A1, {18,"18-24";25,"25-29";30,"30-35";36,"36-37"}, 2 TRUE) 
相关问题