excel计算单元格内计算式的值,并不考虑方括号里的内容
计算单元格内计算式的值,并不考虑方括号[]里的内容(包括文字说明)。
=EVALUATE(SUBSTITUTE(SUBSTITUTE(G37,"[","*ISTEXT(""["),"]","]"")"))
-
公式分解
公式由三个函数嵌套组成:EVALUATE、SUBSTITUTE和ISTEXT,按执行顺序为:- 第一次SUBSTITUTE:将G37单元格中的
[替换为*ISTEXT("[。 - 第二次SUBSTITUTE:将第一次替换后的结果中的
]替换为]")。 - EVALUATE:将最终替换后的字符串作为公式计算。
- 第一次SUBSTITUTE:将G37单元格中的
-
替换过程示例
假设G37内容为[文本][数字],替换步骤如下:- 第一次替换:
[→*ISTEXT("[→ 结果为*ISTEXT("[文本]。*ISTEXT("[数字] - 第二次替换:
]→]")→ 结果为*ISTEXT("[文本]") *ISTEXT("[数字]")。 - 最终表达式:
ISTEXT("[文本]") * ISTEXT("[数字]")。
- 第一次替换:
-
ISTEXT的作用
ISTEXT("[文本]")判断参数是否为文本,返回TRUE(1)或FALSE(0)。
[文本]是文本 → 返回1。[数字]若为数字 → 返回0。
-
EVALUATE的计算
将替换后的字符串作为公式计算:1 * 0 = 0→ 公式返回0(若所有方括号内容均为文本则返回1)。 -
公式目的
检测G37中每个方括号内的内容是否为文本,返回逻辑乘积(全为文本则1,否则0)。若需判断是否包含非文本内容,可将结果与0比较。
公式分解分行
(连续2个双引号,为了执行结果保留 1个双引号。)
EVALUATE( SUBSTITUTE( SUBSTITUTE( I17,"[","*ISTEXT(""[" ),"]","]"")" ) )

浙公网安备 33010602011771号