Excel中,如何当引用值符合特定条件时才进行计算并返回结果?

背景是这样:我们公司有一个比较古老的卡机,也才只有在那边工作的20多个人在这一个卡机上打卡。然后每个月月底我们导出一次打卡记录计算出勤和薪资。但是导出来的数据太乱了。我想让他们每个人的数据按照每天的日期分开。之前有人给我说可以直接用透视分析,但是我没整明白怎么用。我现在是用了countif公式标号之后,用vlookup和row返回每个人对应的所有打卡记录。然后用if加一个限定条件,只有当被计算的单元格日期符合表头给定的日期才计算并返回值,否则返回空值。但是这有个问题,就是如图,会这样显示,还是不方便看和打印。我想让计算结果直接顶格显示,目前我是用选择性粘贴,然后定位到空值的单元格删除,数据自动上移,但是这个太麻烦了。我感觉公式应该可以实现当引用值符合特定条件时才进行计算并返回结果,如果计算不出来就继续进行下一个计算这样的……不知道我表述清楚没有。
最新回答
游戏人间

2024-11-29 05:32:09

思路不清啊!

你的问题首先是日期时间数据的规范化操作,把导出来的原始数据转化为可以计算的值,然后才能用函数核算

然后是数据表格结构的设置,你目前的状况很难看也无法再核算,也就很难再做后续考核的

所以,你的问题只要把原始数据存在的结构格式说清楚,然后再把考核办法目标说清楚,也许人家给你的核算思路就更清楚了,而你目前这样的思路误导会导致问题复杂化更难操作了

你可在S4单元格输入数组公式:

=IFERROR(INDEX($E$4:$E$15,SMALL(IF(INT($E$4:$E$15)=S$2,ROW($1:$11),4^8),ROW(A1))),"")

复制并下拉和右拉,试一试效果(注意:上面的公式是数组公式)

上面这个数组公式只是举例E列数据是在E4:E15区域,可行自己调整这个末行的数值,若是至第136行的话就把15改为136。 公式成立的前提是E列和第二行的数据都是日期时间格式的

另外:

你附图上的公式可以改为:

在S4单元格输入公式:=IF(INT($E4)=S$2,$E4,"")

把阳光剪成窗纸贴在心口

2024-11-29 06:13:52

确实不清楚,建议这种上传附件,以方便别人帮你。