【问题标题】:Excel - sum cell values divided by "plus"Excel - 单元格值总和除以“加号”
【发布时间】:2018-09-14 11:42:25
【问题描述】:

我有一个单元格(A1 有文本“3+2”。在下一个单元格中,我需要输入一个公式“=A1+1”。 我如何告诉 excel 它必须对 A1 求和,这样他才能对其他值求和?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    尝试使用 EVALUATE 函数。最好的方法是不使用 VBA,但需要简单的技巧:

    在单元格 B1 中,使用公式将“结果”添加到名称管理器范围

    =EVALUATE($A1)
    

    不仅仅是放在B1公式中

    =Result
    

    有关 EVALUATE 功能的更全面说明,请参阅this 链接。另外请注意,EVALUATE 函数在您的本地语言中可以有不同的名称。

    顺便说一句。类似的话题被讨论过here

    【讨论】:

    • 如果您不使用$(即=EVALUATE(A1)),那么当您输入=result 时,它将始终计算左侧单元格的内容。如果在创建命名公式时选择了 A2 而不是 B1,那么它将始终评估上面单元格的内容。
    【解决方案2】:

    如果 A1 包含类似

     number+number
    

    然后在B1中输入:

    =LEFT(A1,FIND("+",A1)-1)+MID(A1,FIND("+",A1)+1,999)+1
    

    如果 A1 包含任意数字表达式作为文本,您将使用 VBA UDF。

    编辑#1:

    如果您有一个由 + 符号分隔的值列表,那么您可以使用以下数组公式:

    =SUM((TRIM(MID(SUBSTITUTE(A1,"+",REPT(" ",255)),1+(ROW(A1:A999)-1)*255,255)) & "0")/10)+1
    

    数组公式必须使用 Ctrl + Shift + Enter 而不仅仅是 Enter 键。如果正确执行此操作,公式将在公式栏中显示并带有花括号:

    【讨论】:

    • 谢谢,但如果我可以有“2+4+3”或“2+7+7+6”,我就完蛋了
    • @FilipePires 你可以使用 VBA UDF。
    • 在这种情况下不是解决方案。
    • @FilipePires 查看我的EDIT#1
    • @FilipePires 该公式创建一个内部值数组,然后对其求和。
    【解决方案3】:

    假设您在单元格 A1 中有您的 x+xxx+xxxxxxxxxxxx 值,请考虑以下公式:

    =SUM(0+TRIM(MID(SUBSTITUTE("+"&A1,"+",REPT(" ",99)),ROW(INDEX(A:A,1):INDEX(A:A,(1+LEN(A1)-LEN(SUBSTITUTE(A1,"+","")))))*99,99)))
    

    返回公式时,请务必按CONTROL+SHIFT+ENTER。然后,您可以将其向下拖动以添加其他内容。

    【讨论】:

      【解决方案4】:

      您需要创建一个 VB 宏:

      1. 打开工具>宏>Visual Basic 编辑器
      2. 右键创建新模块(重要!)
      3. 双击刚刚创建的新模块并粘贴此代码

        Public Function EvaluateString(strTextString As String)
            Application.Volatile
            EvaluateString = Evaluate(strTextString)
        End Function
        
      4. 关闭 VB 编辑器窗口
      5. 现在可以使用=EvaluateString(A1)获取A1对应的值了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多