xml文件中同时满足多个条件_如何同时提取满足多重条件的多个值

  • Post author:
  • Post category:其他


caba3fbef41b052114681a5264a22507.png

b0d6e93ef115ccfc3cc4ac70a06fc55a.gif

春天到了…幸福指数又往上飙啊…

这两天的幸福指数还额外高了几分,也许春天到了,大家都更加努力了,最近问我Excel问题的人好像比以前都多…如何同时提取满足多重条件的多个值,如何进行趋势分析和销量预测,如何实现数字文本的直接运算,如何不让别人查看自己的隐藏值…

知识就像一块地,我不知道边界在哪,自己给自己提问题,很难突破现有的知识范围去思考一些新的问题,但是如果有其他人来问我问题,我就费劲想想,感觉就把这块地的边缘又扩大了…~(づ ̄ 3 ̄)づ

dec1a921706fb81a80a05138fbe50971.gif


Topic: 如何同时提取满足多重条件的多个值?

关键词:

同时提取、多重条件、返还多个值

应用:…那太多了…有信息分拣的地方都用得上…看看XX季度XX产品的销量,看看XX年XX大学的招聘人数,跟踪XX区域XX订单的情况…


案例如下:

format,png

左侧蓝色区域是原始记录数据,右侧设置“查找时间”和“查找城市”两个下拉菜单,根据不同的下拉选项,在橙色区域生成不同的结果;换言之,在蓝色区域中提取同时满足两个筛选条件的值,并返还到橙色列表中;

5a6ec6942d9fe8a9c48d18764efe734a.png


效果如下 :

format,png

113a95552efb5a70738e558f311c07a2.gif


解决思路:

format,png

开始这个问题真让我犯难,根据一个判定条件去提取多个值,这个我在之前的公众号已经写过:插入控件->引用变量->实现动态图表纵横筛选

这一篇里面也提到了对双重条件的查找,但有个很大的区别,之前的那篇的两个条件是分别在纵横两个方向,从本质上说,它只需要解决一个判定条件(纵列的判定),对横向(标题行)的判定,基本等于数值比对,不需要使用遍历一样的方式挨个去判定,表达的有点拗口哈…

但是现在一个判定条件变为两个,直接在函数里增加判定条件(一说条件判定首先就想到if,多重条件受限就想到ifs加条件…思维惯势啊),但想了一下,我确实不知道该咋加进去…

换个思路,把这个问题的两个判定条件合并为一个判定条件不就OK了嘛… 跳出常规思维是多么的重要…


操作步骤:

format,png

1、插入辅助列,将两个判定条件合二为一

=IF(AND($A2=$H$1,$D2=$H$2),1,0)

公式翻译:如果A列的值等于查找日期,同时D列的值等于查找城市,则判定这一行满足条件,返回真值1,否则返回0;

69f8241adf525dc82f75b4639bf6e992.png

2、提取满足条件的值

=IFERROR(INDEX(A$1:A$22,SMALL(IF($E$1:$E$22=1,ROW($1:$22),23),ROW(A1))),””)

18fe20a071c14bd1872f70985b48f1c1.gif


来,公式复杂,但是这样的嵌套非常有用并且实践中应用广泛!我挽起袖子给大家翻译一哈…不翻译的话,确实不太容易看懂!

9e644d13dbf43b7f000485c5db8146c6.png

(1)使用if去挨个判定,E1-E22的值是否为1(1则表示该行是我们需要提取的值),是的话,返还这一行的行数,不是的话,返回23(当然你也可以根据心情写其他的数…再当然…实际上写多少还是有点讲究…),数组运算后返回一长串结果,如下图↓

9f39a1379af1d1291c57bb85f3c66b54.png

(2)使用small函数+row函数的组合,随着函数向下拉,row(A1)变row(A2)…变变变…row(A22),对应的值变为1、2、3…22,跟small一结合,就返还步骤1结果中…第1小的数值、第2小的数值、第3小的数值…很明显,从小到大依次是:15、18、20、21、23…(即第几行)

(3)使用index函数,以步骤2的返还值作为参数在A列查找并返还,则依次返还A列第15行的值、第18行的值、第20行的值…搞定!

25b14770e4c109660abee83a70e10aa7.png

(4)iferror函数…在此主要起美化作用…事实上,iferror的主要作用是避免错误值影响后面的计算,因为运算一旦掺入错误值是没法执行运算的…

嗯,口水都说干了,但不晓得大家看懂没…没事,看不懂再多看几遍,感觉没有比这更精辟的表达了啊…同理,再提取姓名和城市信息…

e919c57d02e40737f9312aa4142d42b1.png

可能有小伙伴会问我,我按照上面这样做的话,做出来就是效果图那样子的吗… 不一定…除非你提前在存放数据的区域把公式都写好了…呈现的效果图是已经在区域全部定义好了公式,实现了更新全覆盖…所以大宝贝儿一定要记得公式全覆盖啊…

PS:表格的某个区域有自动更新(不管是数值、空值、提示或者样式的更新),那一定是提前写好了公式,看着没有公式,其实是有的,没有公式定义单元格,是不会自动更新的…

那么也许又有人问,有些单元格点击查看并没有公式啊为什么也会更新啊…我自己也常这样写…还是刚刚那个回答,那铁定是写了公式的,只不过没有把公式写在表格区域罢了…


作为一个追求极致的Excel星人,是不太乐意插入辅助列,也许有其他方式可以一步实现,办法暂时没想到,留下一个初步思路,看看有没有感兴趣的小伙伴跟我一起想…↓↓↓


countifs函数可以实现对满足多重条件唯一值的统计,假设统计出来,有3条满足条件的唯一值,在此基础上,利用3+遍历的思维,是不是可以实现?


原文地址:

如何同时提取满足多重条件的多个值​mp.weixin.qq.com

bdf6bbf229fa1564ae919339491d7399.png

欢迎围观的微信公众号哈…