首页 文章

Excel - 工作表作为一项功能

提问于
浏览
1

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

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

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

Sheet 2

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

...

没有宏可能吗?

4 回答

  • 0

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

  • 1

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

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

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

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

    但我不知道你怎么能用公式强制计算这个数字而不用一些重要的公式字符串解析来分离运算符中的数字(如果你改变B1表1中的条目,可以根据需要灵活计算)

    [Update 2: but fwiw I have done it with a named range]

    我使用了这个范围名称

    RngTest

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

    这是一个全局范围名称,因此它可以在任何工作表上工作,比我以前的OFFSET工作更强大 . 它将单元格与左边的单元格相乘3

    所以在B1中输入= RngTest:B3(然后在这个新的例子中C1:C3也是如此)给出你想要的输出
    enter image description here

  • 1

    我想你想在你的表二栏中使用它 .

    Sheet1!B1 * Sheet2!A1
    
  • 0

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

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

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

    然后你可以在第2页的单元格B1中使用它:

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

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

    编辑:实际上,如果在输入公式之前将Sheet 1单元格B1格式化为Text,即使您的公式以 = 开头也是如此 .

相关问题