小福利,教大家用excel函数实现切片器的功能
源数据如下图所示

我们要实现的效果是如下图:
当我们选择不同街道的时候,会显示出所有的楼盘名称和价格,制作成柱状图

第一步,选择所有街道名称复制到sheet2进行合并去重,得到5个街道名称
第二步,对楼盘名称和楼盘价格分别进行index+match查询
这里说一下index的用法就是在一块区域里面进行定位,给出三个参数,分别是区域,行号,列号,这是核心原理。
match的功能就是拿我们选择的街道名称去sheet1匹配出楼盘所在的行号,列号实际上是固定的,因为第二列就是楼盘名称,第九列就是楼盘价格,这也是核心原理。
第三步,开始写公式
分别在D4到D10输入以下公式
=INDEX(北京丰台小区单价!$A$2:$I$36,MATCH(C3,北京丰台小区单价!$A$2:$A$36,0),2)
=INDEX(北京丰台小区单价!$A$2:$I$36,MATCH(C3,北京丰台小区单价!$A$2:$A$36,0)+1,2)
下边依次加到6就可以,楼盘名称就查找完成了。
接下来,查找楼盘价格
分别在E4到E10输入以下公式
=INDEX(北京丰台小区单价!$A$2:$I$36,MATCH(C3,北京丰台小区单价!$A$2:$A$36,0),9)
=INDEX(北京丰台小区单价!$A$2:$I$36,MATCH(C3,北京丰台小区单价!$A$2:$A$36,0)+1,9)
下边依次加到6就可以,楼盘价格就查找完成了。

最后根据生成出来的楼盘名称和价格插入柱状图就可以。
大功告成。

至于价格那里还可以直接用VLOOKUP函数根据楼盘名去源数据查找出价格

=VLOOKUP(D4,北京丰台小区单价!B2:I36,8,0)

=IF(AF18<=$V$4,SUMIFS(数据!$K$2:$K$7327,数据!$A$2:$A$7327,演示!$S$4,数据!$B$2:$B$7327,演示!AF18),"")
这里大家展示一个if函数巧妙用法,可以让小于等于某月份的数值都显示出来
=IF(AF18<=$V$4,SUMIFS(数据!$K$2:$K$7327,数据!$A$2:$A$7327,演示!$S$4-1,数据!$B$2:$B$7327,演示!AF18),"")
这里同样用到了一个减法,很巧妙地小技巧
=SUMIFS(数据!K2:K7327,数据!A2:A7327,演示!S4,数据!B2:B7327,"<="&演示!V4)
这里也是

更多推荐

小福利,教大家用excel函数实现切片器的功能