在 Excel 2007 中,可用以下公式满足题要求:
8 月之后不良希望摊销费用 = 请求费用 / 发生不良率(工务)* 8 月之后不良率,公式为:=B2/A2*C2
8月以前不良希望摊销费用 = 请求费用 - 8 月之后不良希望摊销费用 或 = 请求费用 / 发生不良率(工务)* 8 月以前不良率,公式为:=B2-F2 或 =B2/A2*D2
注1:本来“8月以前不良希望摊销费用”两个公式的结果应该是相同的,但按题设数据当“发生不良率(工务)”<>“8 月之后不良率”+“8 月以前不良率”时,会产生差别。
注2:“8月以前不良希望摊销费用”两个公式的比较如下图示,可见,当用公式“=B2-F2”时,可保证请求费用不变,但不良率相同时的费用不同;当用公式“=B2/A2*D2”时,不良率相同时产生的费用相同,但请求费用会变化。这是因为注1所述原因造成。
公式结果如下图示:
公式结果的图示
看到了有xor运算的函数:=SUBSTITUTE(SUMPRODUCT(INT(MOD(A1,2^ROW($1:$15))/2^(ROW($1:$15)-1))*10^(ROW($1:$15)-1))+SUMPRODUCT(INT(MOD(A2,2^ROW($1:$15))/2^(ROW($1:$15)-1))*10^(ROW($1:$15)-1)),2,0)
不知道哪位能写出类似的AND、OR的公式?最大数不超过255,不要使用自定义函数。
:handshake
谢谢
关于位运算:
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行 *** 作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理
参考http://club.excelhome.net/thread-627355-1-1.html-
=IF(MINUTE(B2-A2)<>0,HOUR(B2-A2)+1,HOUR(B2-A2))
公式说明:
默认情况下,在单元格中输入类似时间的数据,系统会自动将单元格格式调整成为时间格式。否则,您需要手动将开始和结束时间的格式设置成对应的时间;
公式首先通过MINUTE函数计算出结束时间减去开始时间后的“分”,根据要求得出结论是只要分不是0,就说明要在小时上加“1”,然后通过HOUR函数计算出结束时间减去开始时间的“小时”;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)