=ROUND(IF(CZ8="代缴",IF(DA8="代缴",BX8+IF((CB8-CC8)>=0,(CB8-CC8),0),BX8+BT8+CJ8+IF(CB8>=CC8,CB8,CC8))+CN8,IF(DA8="代缴",CU8-CC8-BT8-CJ8-BW8,CU8-BW8)),2)-BC8可以分这么几点来理解这个公式 展开
=ROUND(IF(CZ8="代缴",IF(DA8="代缴",BX8+IF((CB8-CC8)>=0,(CB8-CC8),0),BX8+BT8+CJ8+IF(CB8>=CC8,CB8,CC8))+CN8,IF(DA8="代缴",CU8-CC8-BT8-CJ8-BW8,CU8-BW8)),2)-BC8可以分这么几点来理解这个公式:1、CZ8表格CZ列与第8行交叉的单元格,后面的DA8、BX8、……、BC8等都是对单元格的引用;2、这个公式最外围的结构是=ROUND(公式1,2)-BC8,意思就是对公式一计算的值取两位小数后减去BC8这个单元格里的值;3、公式1=IF(CZ8="代缴",IF(DA8="代缴",BX8+IF((CB8-CC8)>=0,(CB8-CC8),0),BX8+BT8+CJ8+IF(CB8>=CC8,CB8,CC8))+CN8,IF(DA8="代缴",CU8-CC8-BT8-CJ8-BW8,CU8-BW8)) 这个函数的外围结构是一个IF()判断,即IF(CZ8="代缴",公式2,公式3),意思是当CZ8中的值为字符串“代缴”时,执行“公式2”,否则执行“公式3”;4、公式2=IF(DA8="代缴",BX8+IF((CB8-CC8)>=0,(CB8-CC8),0),BX8+BT8+CJ8+IF(CB8>=CC8,CB8,CC8))+CN8 这又是一个IF()嵌套,意思是当DA8的值为“代缴”时,执行“BX8+IF((CB8-CC8)>=0,(CB8-CC8),0)”,否则执行“BX8+BT8+CJ8+IF(CB8>=CC8,CB8,CC8)”5、公式3=IF(DA8="代缴",CU8-CC8-BT8-CJ8-BW8,CU8-BW8) 这还是一个IF()嵌套,意思是当DA8的值为“代缴”时,执行“CU8-CC8-BT8-CJ8-BW8”,否则执行“CU8-BW8”其实这个公式搞清楚逻辑关系后,只是引用关系有点复杂,里面的公式除了一个IF()嵌套外,没有其他有难度的函数。BTW,里面有几个IF函数可以简化的,比如:IF((CB8-CC8)>=0,(CB8-CC8),0) 等价于 (CB8>=CC8)*(CB8-CC8)IF(CB8>=CC8,CB8,CC8) 等价于 MAX(CB8,CC8)充分利用逻辑关系可以简化公式~~ 收起