=IF(F4="","",LEFT(RIGHT(" "&ROUND($F4,2)*100,14-COLUMN(F:F)+1))) 那位高手帮我解释一下函数的意思!

2024-11-02 00:25:00
推荐回答(1个)
回答(1):

=IF(F4="","",
当F4单元格为空值,则公式返回空值,否则返回计算式LEFT(RIGHT(" "&ROUND($F4,2)*100,14-COLUMN(F:F)+1))

ROUND($F4,2)*100 F4单元格的值四舍五入保留两位小数,再乘上100,即让F4的数值成为一个整数值,方便提取.$是绝对引用符号,加在列标前是为了让在右拉复制公式时对F4单元格的引用不变.我这里假设F4的值是234.123,则得出的值就是23412.

COLUMN(F:F) 这个COLUMN是读取列标值的函数,如COLUMN(A23),得出的值就是1,因为A列是第一列,COLUMN(K10)得出的值就是11,因为K列就是第11列,COLUMN(F:F)得出的值就是6,因为F列就是第6列.而在右拉复制公式时公式中的F就会依次变成G,H,I....相对应得出的值就会变成8,9,10...
14-COLUMN(F:F)+1=9,就会依次得出8,7,6....的值

RIGHT(" "&23412,9) F4的值经过运算得到23412,这个值前加上了一个空格" ",这样这个数就有6位字符,而RIGHT这个函数是从右向左提取字符串内容的,如RIGHT(123,1)提取123这个字符串,右数一个字符,得出的值为3 如RIGHT(123,2) 提取123这个字符串,右数2个字符,得出的值为23. RIGHT(" "&23412,9) 就是提取 " "&23412这个文本字符串右数到左9位字符,而这个字符串只有6个字符,所以全部都提取了(这就要依F4这个数值的大小,当数值超过8位数,即千万元时公式就会产生错误,无法读取大于百万位以上的数)

LEFT(" "&23412) LEFT也是用来提取字符个数的函数,只是提取方法正好和RIGHT相反,它是从左向右提取字符个数的函数.如: LEFT(123,1) 意思为提取123这个字符串,左数1个字符,得出的值为1, 如: LEFT(123,2) 提取123这个字符串,左数2个字符,得出的值为12 公式LEFT(" "&23412)的标准写法是 LEFT(" "&23412,1) 因为第一个字符是空格" ",所以得出的值为" "即空格

所以当F4单元格的数值为234.123时,公式=IF(F4="","",LEFT(RIGHT(" "&ROUND($F4,2)*100,14-COLUMN(F:F)+1)))就会得出值为空值
再右拉依次得出 空值,空值,空值,2,3,4,1,2

如果我这样写了这么多你还不明白,建议各函数的定义多去了解一下,这个公式就很快能明白了