excel中indirect函数

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:46:20
请各位高手帮我解答这条公式的含义,还有每个步骤的计算结果,谢谢!

B2={char(mode(code($A12.ROW(indirect("1:"&len($A12))),1)))}
其中A12=ASADSA1254ASXZ

这个公式本身就是错误的,所以不可能得出结果来。
从公式来判断,正确的公式应该是
{=CHAR(MODE(CODE(MID($A12,ROW(INDIRECT("1:"&LEN($A12))),1))))}
注意,大括号不是手工输入的,是按Ctrl+Shift+Enter产生的。
公式的含义是,取A12的字符串里出现次数最多的那个字符
LEN($A12)得到字符串长度。
"1:"&LEN($A12)就得到1:14
所以应该是ROW(1:14),但实际上1:14这时还是一个字符串,而ROW的参数要求是一个引用地址,用以用INDIRECT将其转换为引用地址。
ROW(INDIRECT("1:"&LEN($A12)))的结果是{1;2;3;4;5;6;7;8;9;10;11;12;13;14}
用MID($A12,{1;2;3;4;5;6;7;8;9;10;11;12;13;14},1)按位列出每位的字符,结果是
{"A";"S";"A";"D";"S";"A";"1";"2";"5";"4";"A";"S";"X";"Z"}
用CODE将其转换为ASCII码,即
{65;83;65;68;83;65;49;50;53;52;65;83;88;90}
再用MODE取出众数,即出现次数最多的那个数,结果为65
最后用CHAR将其转换为字符。

学习一下,加入收藏。