excel有多个满足条件的值,如何返回对应其他列的值?

a=600,100
a=0,0
a在600和0之间,50

利用excel2016以上版本的power query可以完成这个功能

如图,各个任务都是以+隔开,先选中表格,在数据中,新建一个查询,查询是基于表格的(不同版本位置可能不同)

先将周一到周五的所有任务分别分成单个的列,分隔符图中是 “+”

即使某一天没有一个人做多个任务的,也做一下这个操作,因为以后可能会有人做这样的操作。做完以后的样子如下图

选中除姓名外的所有行,做一次逆透视

结果如下图

下面把周一.1之类的.1,.2删除,也是用一次拆分,分隔符为“.“

把多余的属性.2列删除

再做一个一定会出错的一个操作,根据任务和日期,对姓名进行求和,因为同一任务可能会有多个人,要进行合并,但普通用户不会输入命令,就用这样的方式改最简单

再进行一下修改,原来是

修改为

Text.Combine([列1],","), 要注意大小写

如果这样的表格就能满足要求了,可以不再继续了。

如果要再透视,选中属性(日期),进行透视,值是计数(姓名)再有一个特殊的操作,一定要选“不要聚合”

再修改各个列的名字,再将结果进行上载即可,如果要放到指定的位置,就用“上载至……”

最后的结果是如下图

以后在表1中修改,表2点一下刷新即可。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-08-07
可以使用公式:
=IF(A2=0,0,50-49*(A2>=600))追问

我写错了 应该是 a=600,100
a=0,0
a在600和0之间,50

追答

=IF(A2=600))
或者是
=IF(A2<=0,0,IF(A2<600,50,100))

追问

=IF(R5=600,100,IF(and(r5>0,r5<600),50,IF(R5=0,0)))
这么写可以吗

追答

可以写,但是中间的部分操作上有点多余,而且公式不严密不完整,没有对小于0和大于600作出判断,比如万一你的R5数值是650呢?是-15呢?
你这样的公式就不知是什么要求?

追问

哦哦哦 谢谢~~能加您个联系方式嘛qaq

追答

你可以加我关注,有提问也可以私信

本回答被提问者采纳
第2个回答  2020-08-07
=if(a1=600,1if(a1=0,0,if(and(a1>0,a1<600,50,""))))追问

我写错了 应该是 a=600,100
a=0,0
a在600和0之间,50

追答

那修改一下就可以了
=if(a1=600,100,if(a1=0,0,if(and(a1>0,a1<600,50,""))))

追问

= =不行啊 我复制你的公式提示错误 嘤嘤嘤

追答

=IF(A1=600,100,IF(A1=0,0,IF(AND(A1>0,A1<600),50,"")))
掉了个括号
在试试

相似回答