谁能帮我解释下列一条EXCEL的VBA公式,是怎么运算的,还原成表格的公式
问题描述:
谁能帮我解释下列一条EXCEL的VBA公式,是怎么运算的,还原成表格的公式
=TRUNC(301*(COUNTA(C[-3])-ROW(R[-1]C[-3]))/COUNTA(C[-3]),0)
答
这个公式使用的是R1C1样式进行书写的.
假设你的写公式的这个单元格是D5.
那么这个公式还原成A1形式一下
是:
=TRUNC(301*(COUNTA(A:A)-ROW(A4))/COUNTA(A:A),0)
解释一下为什么这么还原:
R1C1样式表示法:
R1C1即表示A1单元格,1行1列
那么
R[-1]C[-3]这种形式呢,就表示相对当前单元格的地址所表示的行减1行(R[-1]),相对当前单元格的地址所表示的列减3列
由于当前单元格是D5,那么行减1,即5-1=4,列减3,即D-3列,表示A列.
所以相对D5单元格而言:R[-1]C[-3]即表示A4
C[-3],因为没有行表,即表示整行,列号减3.即A列,A:A
整个公式的含义估计不用我多讲把:
301*A列有文本的单元格个数-当前行号/A列有文本的单元格个数
这个结果再保留0位小数,即保留整数部分(不进行四舍五入)