发布网友 发布时间:2022-04-25 23:20
共2个回答
热心网友 时间:2023-10-17 10:44
我之前的回答你应该试过吧:
《记账凭证》
G13的原公式:
=LEFT(RIGHT(" ¥"&SUMPRODUCT($G$5:$P$12*10^(10-COLUMN($A:$J))),11-COLUMN(A:A)))
基本公式用乘积和函数SUMPRODUCT():
=SUMPRODUCT($G$5:$P$12*10^(10-COLUMN($A:$J)))
即分别汇总G5:G12、H5:H12、……、O5:O12、P5:P12的数值。但由于数值是从“分”~“百万”大小不同的位数,G5:G12、H5:H12等不能直接相加,故要分别扩大不同位数,从“分”~“百万”供9位数,用10的1次幂10的9次幂使个列的汇总值分开,以便于相加。用列号函数COLUMN()——(10-COLUMN($A:$J)))即以10减去从1~10依次得9、8、7、6、5、4、3、2、1、0。如G5:G12*10^9+H5:H12*10^8+……,这样就得出了一组实数。再用=LEFT(RIGHT(" ¥"&基本公式,11-列号函数))把一组实数一个个返回到相应位置。
来自:求助得到的回答热心网友 时间:2023-10-17 10:44
公式如下:
=IF(OR($E7="",$G7=""),"",LEFT(RIGHT(" ¥"&$E7*$G7/1%,COLUMNS(H6:$O6))))
公式解释:
OR($E7="",$G7="") 判断前面的单元格是否有数据输入(为空),如果为空返回空值。
LEFT(RIGHT(" ¥"&$E7*$G7/1%,COLUMNS(H6:$O6)))把E7*G7计算的值乘以100,目的是去除小数点,然后前面加上一个空格和货币符号,加空格的目的是在取数时,前面不应该有的位置能取空值,right函数取右边N位数值,这个N位是动态的,由列数的相对和绝对引用控制COLUMNS(H6:$O6),使取到的数随着公式向右拖动逐渐减少。然后再用left把最左边的一位取出来填上。