Jack_Kwok 2024-03-07 17:21 采纳率: 0%
浏览 5

怎么引用一个单元格的部分内容,实现同步变动?

怎么引用一个单元格的部分内容,实现同步变动?

img

如图,如何实现 改变 200 和 50 的数值,150 随之同步更改?
已知可以用left、right函数去拼接,但只能适用于其他字符不变的情况下。

各路大🐂,还有其他方法吗?就在同一个单元格内的方法。

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-07 17:21
    关注

    引自免费微信小程序:皆我百晓生

    在Excel中,要实现您所描述的同步变动功能,即更改单元格内的某个数值时,另一个基于该数值计算的结果自动更新,可以利用Excel公式进行动态引用。针对您的例子,在同一个单元格内实现这个目标稍有难度,因为通常我们会用到不同的单元格来分别存储原始数据和计算结果。不过,我们可以通过一个巧妙的方法间接实现:

    假设您要在A1单元格中处理“=200+50”,并希望当修改其中的200或50时,紧跟其后的150能够同步变化。

    一种可行的方案是使用名称定义(Name Manager)结合INDIRECT函数和查找替换函数(比如FIND和REPLACE)。但由于单元格内容不是直接的数值而是文本形式,需要将文本转换为可计算的数值表达式。

    这里提供一个较为复杂但能实现需求的方法步骤:

    1. 首先,定义两个名称(通过“公式”->“名称管理器”新建名称):

      • 名称:Number1
      • 引用:=LEFT(A1,FIND("+",A1)-1)
      • 名称:Number2
      • 引用:=MID(A1,FIND("+",A1)+1,LEN(A1))
    2. 然后,在B1单元格或其他位置放置计算结果,公式如下:

      =EVALUATE(REPLACE(A1,FIND("+",A1),1,"&"))
      

    注意:Excel本身并不支持EVALUATE函数,但在VBA中可以实现,因此您需要借助VBA宏来完成此操作。以下是一个简单的VBA宏代码示例:

    Function EvaluateFormula(cell As Range) As Variant
        Application.Volatile
        EvaluateFormula = Evaluate(Replace(cell.Value, "+", "&"))
    End Function
    

    然后在B1单元格中输入公式:

    =EvaluateFormula(A1)
    

    这样,当你修改A1单元格中的"200"或"50"时,B1单元格会根据新的表达式重新计算结果。

    然而,这种方法可能并不适用于所有情况,并且对单元格格式要求严格,因为它依赖于特定的文本模式。对于大多数实际应用,建议还是将原始数据放在单独的单元格中以便直接引用和计算。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月7日