2.2 显示一条数据
为了方便说明,这里仍以上述数据为例,查看上述数据中“地区4”的产品销售情况。如前面所述,可以通过筛选、隐藏等多种不同的操作方式来完成。但是,如果还想查看“地区6”的数据,则需要先取消本次操作,让所有数据全部显示,再通过逻辑调整显示“地区6”的数据。可以看到,想要频繁地查看不同区域的数据,使用筛选、隐藏等方式操作起来就比较麻烦了。
这里,在另外一个区域复制原始数据的表头,然后在表头的下面一行建立一个下拉列表,通过选择下拉列表项目的形式,完成特定项目的展示,如图2-5所示。当选择不同的区域后,则在其右侧显示该区域所对应的产品销量。
图2-5 示例图
在图2-5中,用来显示地区的下拉列表是通过“数据验证”实现的。这一功能在Excel的较低版本中被称为“数据有效性”,虽然高低版本中的称呼不一样,但本质上是一回事。
要使单元格内容能够呈现出上述的下拉列表效果,可以通过“数据验证”功能实现,将单元格的“验证条件”中的“允许”设置为“序列”,“来源”设置为要显示的具体列表项。
这里,将用来显示“地区”的单元格进行数据验证设置。首先,单击“数据”选项卡中“数据工具”组内的“数据验证”,然后在弹出的下拉菜单中选中“数据验证”。在出现的“数据验证”对话框内,选择“设置”选项卡,如图2-6所示。在其“验证条件”中的“允许”下拉列表内选择“序列”,在“来源”位置选择原始图表内的所有区域单元格“B3:B8”,即可完成设置。
图2-6 “数据验证”对话框
在对话框中通过选取方式填入到“来源”中的单元格区域“B3:B8”,会被对话框自动调整引用关系,将其转换为绝对引用形式“=$B$3:$B$8”。必要时,被选取的单元格区域还会被自动加上工作表名称。
在本例中,右侧数据的显示要借助VLOOKUP函数实现。VLOOKUP函数用来实现查找功能,其语法结构为:
VLOOKUP(查找值A,查找区域B,返回列号C,查找模式D)
该函数的含义是在“查找区域B”的首列中查找“查找值A”,如果找到了,则返回这一行中第“返回列号C”列的值,作为返回值。查找时,可以通过“查找模式D”来决定进行精确查找还是模糊查找。
例如,在图2-7中,使用公式“=VLOOKUP(I2, A1:G7,4, FALSE)”,使用精确查找方式(通过参数“FALSE”决定),在“A1:G7”区域中首列查找值为“地区4”的第“4”列,返回值为“80”。
图2-7 VLOOKUP函数示例
在图2-5中,每种产品的销量通过VLOOKUP函数获取,以单元格C12为例,其公式为:
=VLOOKUP(B12, B2:H8,2, FALSE)
单元格区域C12:H12引用的公式分别如表2-1所示。
表2-1 单元格引用公式情况
在数据处理过程中,通常需要确保公式具有一定的通用性,以保证能够实现自动填充。例如,如果单元格C12中使用了合适的公式,那么直接向右拖动单元格C12的填充柄就能在单元格区域D12:H12内显示正确数据。为了完成上述功能,需要做出如下改进。
1.确定查找值的引用形式
可以看到,在单元格区域C12:H12中,不同的单元格引用的查找值都是单元格B12。因此,公式中对该单元格的引用可以考虑使用绝对引用形式。
这里是否必须要使用绝对引用呢?进一步分析可知,每次在行方向上,由于当前只有一行,不涉及行方向的变化问题,因此对于行来说,既可以使用相对引用,也可以使用绝对引用。在列方向上,每次都要引用特定的列,所以要保持列的绝对引用形式。综上,对于单元格B12的引用,可以使用$B$12或者$B12两种引用形式中的任意一种。
2.确定查找区域的引用形式
在引用的过程中,对单元格区域B2:H8的引用要一直保持不变。因此,对单元格区域B2:H8的引用要使用绝对引用的形式,即要采用“$B$2:$H$8”的引用形式。
3.调整引用列形式
从表2-1中可以看到,单元格C12在使用VLOOKUP函数进行查询时,查询的是单元格区域B2:H8内的第2列。在其右侧的单元格区域D12:H12,依次引用的是查询区域B2:H8的第3/4/5/6/7列,每次引用的数字都是递增的。在Excel的公式引用中,单元格能够随着引用关系的变化而发生变化,但引用的数字并不会随着单元格的变化而发生变化。
既然这样,可以考虑是否能够将引用的数字2变换成对单元格的引用。函数COLUMN(单元格)正好可以满足这一需求。函数COLUMN(单元格)能够返回引用单元格所在的列编号,如“=COLUMN(B2)”能够返回当前单元格B2所在的列序号“2”。当然,也可以使用COLUMN函数返回当前选中整列的列编号,如“=COLUMN(B:B)”同样可以返回2。
当单元格C12引用“=COLUMN(B:B)”时,拖动单元格C12的填充柄向右填充,则会在单元格D12内自动引用“=COLUMN(C:C)”。这是由于当前的列发生了变化,引用公式内的列也要同步发生变化。当C12变为D12时,向右侧移动了一列,会导致其引用的公式“=COLUMN(B:B)”内的B列也同步向右移动一列,变为C列,公式即为“=COLUMN(C:C)”。
综上,使用公式“=VLOOKUP($B$12, $B$2:$H$8, COLUMN(B:B), FALSE)”能够满足需求。
根据当前选择的地区数据,可以生成一条独立的折线。如图2-8所示,左侧是全部数据的折线图,右侧是选择“地区3”时所生成的折线图。可以看到,右侧只有一条折线的折线图更方便观察数据的变化情况。
图2-8 全部数据的折线图与只有一条折线的折线图对比