Excel公式中是否存在变量这样的东西?

Pau*_*ery 38 excel

我讨厌重复功能,特别是在Excel公式中.有什么方法我可以避免这样的事情:

=IF( VLOOKUP(A1, B:B, 1, 0) > 10, VLOOKUP(A1, B:B, 1, 0) - 10, VLOOKUP(A1, B:B, 1, 0) )
Run Code Online (Sandbox Code Playgroud)

[以上只是问题的一个简单示例,而不是我正在使用的特定公式.]

Tim*_*son 38

您可以为公式的VLOOKUP部分定义名称.

  1. 突出显示包含此公式的单元格
  2. 在"插入"菜单上,转到"名称",然后单击"定义"
  3. 输入变量的名称(例如"值")
  4. 在"引用到"框中,输入您的VLOOKUP公式: =VLOOKUP(A1,B:B, 1, 0)
  5. 单击"添加",然后关闭对话框
  6. 在原始公式中,使用您刚定义的名称替换VLOOKUP部分: =IF( Value > 10, Value - 10, Value )

步骤(1)在这里很重要:我想在第二行,你想要使用Excel VLOOKUP(A2,B:B, 1, 0),第三行VLOOKUP(A3,B:B, 1, 0)等.步骤(4)通过使用相对引用(A1B:B)来实现这一点,而不是绝对引用($A$1$B:$B).

注意:

  1. 对于带有功能区的较新Excel版本,请转到"公式"功能区 - >"定义名称".之后也一样.此外,要使用您的名字,您可以在编辑公式的同时在"定义名称"下执行"使用公式",或者开始键入公式,Excel将建议名称(信用:Michael Rusch)

  2. 缩短步骤: 1.右键单击一个单元格,然后单击定义名称... 2.输入名称和要与该名称/局部变量关联的公式3.使用变量(信用:Jens Bodal)

  • 请注意,每次Excel遇到Excel公式中的名称时,它都会评估名称.因此,使用Name替换公式中的重复子表达式会为您提供更简洁的公式,但不会保存任何计算时间(实际上它稍微慢一些,因为Excel需要在评估之前找到名称的referto公式). (6认同)
  • 对于带有功能区的较新Excel版本,请转到"公式"功能区 - >"定义名称".之后也一样.此外,要使用您的名称,您可以在编辑公式的同时在"定义名称"下执行"在公式中使用",或者开始键入公式,Excel将建议名称. (3认同)

Fer*_*osa 7

现在您可以使用函数 LET在 Excel 公式中声明变量。 此功能自 2020 年 6 月起面向 Microsoft 365 用户提供。

鉴于您的示例,公式将是:

=LET(MyFunc,VLOOKUP(A1,B:B,1,0), IF(MyFunc > 10, MyFunc - 10, MyFunc ) )
Run Code Online (Sandbox Code Playgroud)

第一个参数是变量名,第二个参数是函数或范围。您可以添加更多对参数变量、函数/范围。

添加变量后,最后一个参数将是您感兴趣的公式——调用您刚刚创建的变量。

有关详细信息,请访问 Microsoft 网页此处

  • 这应该是答案,因为它是如何在公式范围内创建局部变量的。OTOH,从 Excel 的角度来看,所选答案并不正确:它涉及使用另一列,而不是“公式中的局部变量”。 (6认同)

Pat*_*ald 6

您可以将中间值存储在单元格或列中(您可以选择隐藏它们)

C1: = VLOOKUP(A1, B:B, 1, 0)
D1: = IF(C1 > 10, C1 - 10, C1)
Run Code Online (Sandbox Code Playgroud)