【问题标题】:Excel 2016 showing wrong formula results, but the Functon Arguments Dialog shows correct resultExcel 2016 显示错误的公式结果,但函数参数对话框显示正确的结果
【发布时间】:2017-08-28 17:59:03
【问题描述】:

我在 Excel 中尝试了几个公式,但遇到了多个公式的问题。我输入了一个应该可以工作的公式,但是 excel 显示错误的结果。如果我单击功能按钮查看参数 - 对话框显示正确的值!

例如,如果单元格 A1 = "DE1" 并且 A2 有 =MIN(FIND(ROW($1:$10)-{1},A1&56^7)) Excel 在单元格 A2 中有一个 7,但如果我编辑该函数,我会看到 2 的正确值。

我的最终目标是使用公式从单元格中删除所有数字(我不想要 VBA 代码)我在网上看到了一些示例,但都显示出与上面示例相同的症状。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    公式:

    =MIN(FIND(ROW($1:$10)-{1},A1&56^7))
    

    是一个数组公式,要回答你的问题,退出编辑模式时需要用Ctrl-Shift-Enter而不是Enter来确认。如果操作正确,Excel 会在公式周围加上{}


    公式在做什么:

    A1&56^7
    

    创建一个值为 A1 和 1727094849536 的文本字符串,即 56^7 它也是一个包含 0-9 的所有数字的数字。这可以防止 FIND 返回错误。

    ROW($1:$10)-{1}
    

    按该顺序返回所有单个数字的数组:{0,1,2,3,4,5,6,7,8,9}

    注意:不需要{},在这种情况下它不会做任何事情,可以省略。 ROW($1:$10)-1

    Find then in Array 形式将返回每个数字的第一个字符位置的数组。所以在A1&56^7DE11727094849536 的情况下,数组将是:{8,3,6,15,10,14,16,5,11,9}

    从此 MIN 将返回 3

    如果没有 Ctrl-Shift-Enter,FIND 将不会遍历数组,只返回第一个,或 8,一个数字的 MIN 就是那个数字。

    【讨论】:

    • 谢谢。就是这样。
    • @Scott Craner,很棒的解释
    • 我本来想早点问的,但在工作中被打断了。是所有数字的 56^7 技巧,但一个已知的程序员快捷方式用于表达所有短于 1234567890 的数字?
    • @ForwardEd 这对我来说是新的,但它有效。我现在将它偷走并使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多