如何判断Excel单元格是否具有公式或是否经过硬编码?


17

有没有人有一个特别的技巧(非VBA强烈推荐)来系统地告诉您一个单元格是否具有硬编码值或是否是派生公式?

我正在处理一些嵌入了杂乱小计的数据,并试图查看是否可以分离出原始行。


“显示公式”模式(Ctrl +`)有帮助吗?
sblair

可以,但是我不会认为它是“系统性的”-需要我手动删除小计线。
YGA

Answers:


8

使用条件格式。选择“使用公式来确定要格式化的单元格”选项,然后键入“ = NOT(Cellhasformula)”。这将格式化任何硬编码的内容。


8
因此,这不是完整的答案,但实际上很优雅。完整的答案位于:j-walk.com/ss/excel/usertips/tip045.htm 关键是您首先需要创建一个名称(通过“公式->名称管理器”)“ Cellhasformula”,该名称“指”神秘公式= GET.CELL(48,INDIRECT(“ rc”,FALSE))。如链接所示,该公式使用GET.CELL,它是XLM宏语言(VBA的前身),不能直接在工作表中使用。如果单元格中有公式,则“ 48” arg使GET.CELL返回“ True”。INDIRECT基本上为选定范围内的每个单元格创建一个引用。
YGA 2013年

我已经编辑了答案,以包括这些详细信息。感谢@YGA
Alain

15

选择有问题的单元格,按Ctrl+ G,然后选择Special以获取以下对话框:

转到特殊对话框

然后指定所需的单元格类型,然后单击OK,只有那些类型的单元格将保持选中状态。


8

从Excel 2013开始,您可以执行以下操作:

=ISFORMULA(reference)

这里是完整的文档


3
=iferror(Formulatext(cell),"Not Formula")

或仅显示公式:

=iferror(Formulatext(cell),"")

对于使用LibreOffice Calc而不是Excel的任何人,请将Formulatext()替换为Formula()。
fixer1234年

2

另外两种方法是

  1. 使用地图工具,例如我的Mappit!插件 (可以作为受信任的插件运行)
  2. 您可以使用非常有用的XLM /范围名称解决方法,该方法可为硬编码的单元格,公式,链接的单元格等提供实时着色。与VBA不同,这不需要任何编程知识即可进行部署


1

如果要以无宏工作簿格式存储Excel文件,则应避免使用VBA和宏(即其他答案中建议的XL4 / XLM方法)。在这个答案中,我假设没有宏的Excel文件。

如果您使用MS-Excel 2013,则可以使用:

=ISFORMULA(reference)

如果使用旧版MS-Excel(例如2010、2007),则没有真正的功能来确定单元格是否包含公式。但是,您可以使用以下方法对其进行近似:

=IF(OR(ISBLANK(reference);CELL("prefix";reference)<>"");FALSE;IF(CELL("type";reference)="l";TRUE;"MAYBE"))

上面的函数返回:

  • 对于包含将要生成字符串数据的公式的单元格,为TRUE。
  • 对于包含字符串文字或为空的单元格,则为FALSE。
  • “ MAYBE”表示包含布尔值,数字或日期的单元格,无论此值是文字还是公式的结果。

1

早于原始日期,但是如果任何人都可以使用,我设法通过选择单元格范围来解决此问题,然后使用“替换”(Ctrl + H),将其设置为“查找”“公式”并替换为等于 =撇号等于'=

这带出了所有公式,但显然也会转换类似$ C $ 1的内容 =if($A1=$B1,"Match","Different")转换为'=if($A1'=$B1,"Match","Different")

注意 A1'=B1公式中间的,虽然可能有问题,但仍然意味着您可以看到这些公式,尽管这不是实用的。可以使用SUBSTITUTE函数将其改回,因此$ D $ 1包含=SUBSTITUTE(C1,"'=","="),然后将其复制到记事本中并粘贴回$ E $ 1

另一种方法是“显示公式”,但它将显示每个单元格的公式,而不仅仅是选定的范围。


1
Function is_formula(c As Range) As Boolean
  is_formula = Left(c.Formula, 1) = "="
End Function

您能添加简短的解释来告诉我们这里发生了什么吗?:)
bertieb

只是将其粘贴在VBA模块中,尽管我意识到现在OP不需要VBA。但是无论如何,这就是我使用的原因。
乔治·斯凯尔顿

那不是真正的解释
bertieb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.