首页 文章

Excel公式 - 检查单元格是否具有公式

提问于
浏览
2

你用什么公式检查另一个细胞是否有配方?例如,我有2列,A包含包含公式或值的单元格 .

(A列通常包含公式,但其他用户尝试通过直接键入和替换之前的公式来更改其值)

在B列中,我想添加一个公式,如果列A上的单元格具有公式,则表示“HasFormula”,如果它包含值,则表示“PlainValue” .

我想也许正在使用 =ISNUMBER() ,但这可能不准确 .

我正在使用Excel 2010 .

3 回答

  • 6

    Excel实际上有一个内置的 ISFORMULA() 函数 .

    A1 有一个公式,你想检查一下 . 比方说 B1 ,您可以使用:

    =If(ISFORMULA(A1),"HasFormula","PlainValue")

    编辑:根据您的评论,您没有 ISFORMULA() . 另一种方法是创建一个快速UDF,并使用工作表中的自定义函数 .

    在工作簿模块中,输入以下代码:

    Function isFormula(ByVal target As Range) As Boolean
         isFormula = target.hasFormula
    End Function
    

    然后你可以像这样调用它: =isFormula(A1) 如果 A1 有公式,它将返回 TRUE .

    如果你不能使用VBA,那么你可以使用这个公式: =IF(ISERROR(FORMULATEXT(A1)),"PlainText","HasFormula")

  • 0

    MrExcel网站(下面的链接)有这种方法,它使用Excel 4中的旧代码(为了向后兼容性仍然存在)...

    定义一个名称,如“CellToLeftHasFormula”和“引用”框中

    =GET.CELL(48,OFFSET(INDIRECT("RC",FALSE),0,-1))

    然后在B列中使用公式= CellToLeftHasFormula,如果有,则返回TRUE .

    请注意,这将意味着您的Excel现在将包含一个宏,因此需要保存(xlsm) . 我在Excel 2010中使用它 .

    有关完整说明(以及其他.CELL选项,除48之外),请参阅MrExcel链接:https://www.mrexcel.com/forum/excel-questions/20611-info-only-get-cell-arguments.html

  • 1

    您可以通过保护列A来限制用户 .

    您可以使用快捷方式 Ctrl + ` 直接检查单元格是否包含公式 .

    您可以使用vba并编写用户定义的函数:1 . 按alt F11 2.在工作簿中插入模块3.粘贴此代码

    Function IsFormula(cell_ref As Range) 
    IsFormula = cell_ref.HasFormula 
    End Function
    

    4.现在,在任何地方使用Isformula .

相关问题