如图,L列为合同回款节点,预付款,到货款,尾款都是手动填入日期,N列要求算出当前付款日到上一付款日(预付款则是到合同签订日)的天数差。我现在的公式是N4=DATEDIF(L3,L4,"d"),然后直接公式拉下去,但是如果合同没有预付款,或者到货款,也就是L4,或者L5为空,直接填写L6的话,怎么写才能让公式直接读取上一个单元格,如果还为空则继续读取上一单元格直到L3为止?
是这样,
N3=N4+N5+N6,N4=DATEDIF(L3,L4,"d"),N5=DATEDIF(L4,L5,"d"),N6=DATEDIF(L5,L6,"d")
然后当L5为空的时候,N6最后要得出datedif(L4,L6,"d")的结果,如果L4也为空的话,N6最后得出datedif(L3,L6,"d")的结果。。。。
这个公式该怎么写?
你表达的意思就是尾款必须日期必须有,并且优先顺序是和 到款日-预付日-合同日之间的天数差,那么有一个比较笨的办法但可以直接解决,如下
公式写在N6单元格确保L6单元格一定会和上述某一项日期产生一个天数差:
if(L5="",if(L4="",DATEDIF(L3,L6,"d"),DATEDIF(L4,L6,"d")),DATEDIF(L5,L6,"d"))
你需要了解一下IF函数的用途,然后自己可以在需要的时候增加或减少项目,这个函数逻辑非常简单,判断一个条件,对了返回True区的值,错了返回False区的值,只要你逻辑不会乱你可以无限套下去。