我在一个单元格中有超过 10,000 个字符的公式。我无法引用多个单元格,因为要求限制了它。
示例:
=IF(NOT(ISERROR(SEARCH(String1,IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))),SUBSTITUTE(IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),""),String1,$G2),IF(NOT(ISERROR(SEARCH(String2,IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))),SUBSTITUTE(IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),""),String2,$F2), IFERROR(IF(INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))="","",INDEX(INDIRECT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($J2,"&","_"),"-","_")," ",""),":","_")),COLUMNS($K$1:K$1))),"")))
我不确定这个公式是否有帮助。但该公式的示例部分。
在 Excel 中获得命名范围(定义名称),公式可以根据该范围的名称调用单元格。
有类似的公式/函数吗?因为我的函数由于嵌套公式而很长。
我可以用我自己的角色替换“SUBSTITUTE”吗?像前一样。 SUBTE?
最佳答案
正如之前所建议的,最好的解决方案几乎肯定是编写一个简洁的 VBA 函数来为您完成所有操作。
但是,正如您明确要求的那样。下面是一个函数的代码,只是一个SUBSTITITE
,但长度较短。我看不到您在哪里使用了 instance_num
参数,因此我没有构建它。
您需要将以下代码添加到 VBA 编辑器中的新模块中,然后只需编写 SU()
即可在工作表上使用 SUBSTITUTE()
函数>
Function SU(txt As String, old_text As String, new_text As String) As String
SU = Application.WorksheetFunction.Substitute(txt, old_text, new_text)
End Function
关于vba - Excel函数限制8192个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42094960/