dynamic公式

我有一张名为Column Reo的工作表,因为在具体的列属性上有很多数据input。

例如:

  1. 宽度
  2. 深度
  3. 高度
  4. 没有。 垂直钢筋
  5. 酒吧的直径

我也有第二张表,有一些固定的数据为一些命名的愤怒等等…

例如:

  1. 宽度
  2. 钢筋的常数
  3. 结扎模式types计算

等等

每个lig图案需要基于列和列结构加载等的形状的不同公式。有27种不同的lig图案types。

我在“固定数据”表上写了一些公式,这些公式会根据具体的列属性计算每个lig模式的总长度,然后在使用VLOOKUP匹配问题的“列reo”表中创build一个下拉菜单,问题是否需要拖动实际公式,以便dynamic调整到已复制的行,并使用该行的数据计算总的光照长度。

我希望能够正确地解释它,我希望在没有VBA的情况下可以完成,但是如果需要的话,就这样吧!

编辑这里是文件的链接https://www.dropbox.com/s/c29e0s4g13cr89p/Reo%20calculation%20sheet.xlsx

基于从“列数据库”-H4下拉菜单中的select,我希望能够从“固定数据”对应表中拉动公式。 但是我需要公式来调整它所在的行。

作为一个没有VBA的肮脏的解决方法,你可以将所有types的计算作为单独的列(在列表单上),然后使用下拉列表select你想要返回的行中的哪一个……丑陋但很简单。

如果你很高兴使用VBA …

  1. 在你的“固定数据”查找中input你的函数作为文本(开始的撇号),就像这样: '=+(('column reo'!C<<row>>*2)+('column reo'!D<<row>>*2))+(('column reo'!C<<row>>/3*2)+('column reo'!D<<row>>*2)) (注意行号公式被replace为<<row>>

  2. 在VBA中,创build函数calculateLig
    Function calculateLig(r As Range) As Double
    Pattern = Application.WorksheetFunction.VLookup(r, Application.Worksheets("fixed data").Range("J:K"), 2, 0)
    Pattern = Replace(Pattern, "<<row>>", r.Row)
    calculateLig = Evaluate(Pattern)
    End Function
    这个函数执行VLOOKUP (硬编码范围 – 你可以改变它)来取回文本公式。 然后将公式中的关键字<<row>>replace为input单元格的行并返回对其的评估。 您可以在工作表公式中使用此function。

我的解决schemereulies来自Morefunc Addon EVAL()函数*

  1. fixed data表上重新编写你的公式,如下所示。 包括引号 – 单元格应该只是将其作为文本存储,而不是实际执行任何计算:

    这是K5中公式的一种新的表示forms(将被粘贴到L5中): "+((C"&ROW()&"*2)+(D"&ROW()&"4*2))+((C"&ROW()&"/3*2)+(D"&ROW()&"*2))"

  2. 确保你有MORFUNC工作(尝试写`= Eval(“,看看它是否被识别为一个函数

  3. 在单元格K4上写入=EVAL(EVAL(VLOOKUP(H4,'fixed data'!J4:L33,3,FALSE))) 。 这将检查在相应的下拉列表中select了哪一个“Coltypes”,然后使用新的公式来计算相应的“Lig Pattern”

  4. 在“固定数据”工作表上重复其他公式,并将公式复制粘贴到“列工作室”工作表中所有其他行。


MOREFUNC ADDON

  • Morefunc Addon是一个包含66个新工作表函数的免费库。
  • 这里是一些信息(由原作者)
  • 这里是我发现的最后一个工作下载链接
  • 这里是一个很好的安装步行video