1
职场实例
小编遇到了这样一个 问题求助 :
表格列数太多,查看不方便,用什么方法,可以快速浏览到想要的数据呢?
我们来看一下具体的问题模型:
下图最左边的表格为 数据源 (注:实际工作场景 列数有100列 ,此例简化说明), 每两列为一组数据 , 第一行列标题为城市名称 , 第二行 副列标题 分别为 数量 和 金额 。我们想要在 I2单元格 通过切换不同的城市名称,将数据源中对应的城市列数据显示在 H4:I11区域内 , 方便我们查找浏览数据 。
最终的效果为下面动图所示:
2
问题解答
小编整理好了解决这个问题的思路 ,下面来介绍给大家,希望对大家的日常职场办公 有所帮助 。
首先我们在 I2单元格 建立数据 有效性下拉菜单 ,用于 切换城市 。
点击【数据】-【数据验证】,【允许】处选择【序列】,【来源】处输入: =$K$3:$K$5 ,最后点击【确定】即可。具体操作步骤如下图所示:
在H1单元格输入公式:
=MATCH(I2,1:1,0)
MATCH函数:
返回指定数值在指定区域中的位置。
=MATCH(找谁,在哪儿找,匹配方式)
本例中的 MATCH函数 的意义是:
I2单元格的城市名在第一行数据区域中的位置,比如当I2单元格显示“南京”时,在第一行列标题数据区域中的位置为3,即首次出现的 第3列 位置 处。
在I1单元格输入公式:
=H1+1
比如I2单元格显示城市“南京”时,在数据源中的数据为 第3列和第4列 。上一步中在H1单元格已经得到了列号3,所以在H1的基础上加1,得到列号4。
当我们在I2单元格切换不同的城市名称时, 就会在H1和I1单元格得到数据源中对应的两列列号。
在H4单元格输入公式:
=INDIRECT(ADDRESS(ROW(A1),H$1))
向右并向下填充公式即可。
ROW函数返回所选择的某一个单元格的行数。
=ROW(引用的单元格)
ADDRESS函数,根据行号和列号以文本的形式返回单元格的地址。
=ADDRESS(行号,列号,引用类型,引用样式,工作表名文本)
INDIRECT函数返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。
ROW(A1)
得到A1单元格所在的行号为 1 ;
ADDRESS(ROW(A1),H$1)
得到ADDRESS(1,5),即第1行与第5列交叉的位置单元格地址: E1 ;
INDIRECT(ADDRESS(1,5))
得到INDIRECT(E1),即立即显示E1单元格的内容“ 上海 ”。
最后我们就实现了在I2单元格通过切换不同的城市名称,将数据源中对应的城市列数据显示在了H4:I11区域内。这就解决了今天的问题: 表格列数太多,查看不方便,用这种方法,可以快速浏览到想要的数据呢。 效果如下图所示:

)