【问题标题】:Excel - Sheet as a functionExcel - 工作表作为函数
【发布时间】:2011-10-04 10:49:43
【问题描述】:

我有两张 Excel 表格。第一个包含一个用于计算的公式,其中一个输入单元格 (A1) 和一个输出单元格 (B1)。 B1 的公式可以是 B1 = A1 * 3(示例)。

第二张表在 A 列中包含各种值:A1 = 4; A2 = 9; A3 = 5 ... 在此工作表的相应 B 列中,我想得到 B1(第一工作表)= A1(第二工作表)* 3 每个 A(第二工作表)输入值的结果。

基本上,我想将第一个工作表视为一个函数,其中 A1 是参数,B1 是传递回第二个工作表的 B 列的结果。

表 2

A1 4      B1 12 (result from sheet 1)  
A2 9      B2 27 (result from sheet 1)

...

没有宏可以吗?

【问题讨论】:

    标签: excel ms-office excel-formula


    【解决方案1】:

    这是内置在 Excel 中的。在 2003 版中,使用“数据”、“表格”菜单。
    你可以在网上找到很多例子。这是one
    您可以使用 1 个或 2 个条目(参数)创建此类表。

    【讨论】:

    【解决方案2】:

    我不这么认为...... 如果在 B1 Sheet1 你有 3*A1

    如果您在 Sheet2 B1 中尝试此操作

    `=SUBSTITUTE(Sheet1!$B$1,"A1",A1)`
    

    它会给 3*4,Sheet2 B2 将是 3*9etc

    但我看不出你如何能用公式强制它进行数字计算,而不需要一些繁重的公式字符串解析以将数字与运算符分开(如果你更改 B1 表 1 中的条目,则不可能根据需要灵活调整)

    [更新 2:但我已经用命名范围完成了它]

    我使用了这个范围名称

    RngTest

    =EVALUATE(3*INDIRECT("rc[-1]",FALSE))

    这是一个全局范围名称,因此它适用于任何工作表,比我之前的 OFFSET 工作更强大。它将最左边的单元格乘以 3

    所以在 B1:B3 中输入 =RngTest(然后在这个新示例中也输入 C1:C3) 给出你想要的输出

    【讨论】:

      【解决方案3】:

      我认为您想在工作表的第二列中使用它。

      Sheet1!B1 * Sheet2!A1
      

      【讨论】:

      • 这其实不是我想要的。我想把 Sheet1 当作一个函数(方法)来根据参数返回值。
      • 在第一段中你说 B1 = A1*3。在第二段中,您说 B1 = Sheet2!A1 *3。是哪个?
      • 我认为他希望能够在 Sheet1!B1 中编写公式“模板”。然后应将该模板调整到 Sheet2 上的适当位置。
      【解决方案4】:

      完全没有 VBA:期待很多痛苦,我不会去那里。但是……

      为了大大减少痛苦,您实际上可以使用这个微小的 VBA 用户定义函数(技术上不是“宏”),基本上只是一个包装器,使 VBA 的 Evaluate 函数在工作表公式中可用:

      Function eval(myFormula As String)
          eval = Application.Evaluate(myFormula)
      End Function
      

      然后您可以在工作表 2 的单元格 B1 中像这样使用它:

      =eval(SUBSTITUTE(Sheet1!$B$1,"A1","A"&ROW()))
      

      请注意,这要求工作表 1 单元格 B1 包含 A1*3 而不是 =A1*3,即没有等号。也许稍微摆弄一下,即使那里有 = 符号,它也可以工作......

      编辑:实际上,如果您在输入公式之前将工作表 1 单元格 B1 格式化为文本,即使您的公式以 = 开头,这也将起作用。

      【讨论】:

        【解决方案5】:

        没有宏可以吗?

        是的!

        您现在可以为此使用=LAMBDA

        使用名称管理器定义您的函数,然后在第二张表的公式中引用它。

        请参阅Introducing the LAMBDA function 的语法。

        有关如何使用LAMBDA 函数的更多信息,请参阅support documentation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-25
          • 1970-01-01
          • 2021-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多