2014-08-29 55 views
0

我有一个在这片被称为列雷奥片是一大堆数据录入因为混凝土柱属性...动态公式

如:

  1. 宽度
  2. 深度
  3. 高度
  4. 没有。垂直钢筋
  5. 直径棒材

我也有一个具有固定数据了一些关于它的命名肆虐等的第二片...

如:

  1. 宽度
  2. 钢筋的常数
  3. 结扎图案类型计算

每个LIG图案需要基于列和列结构载荷等的形状不同的公式有27种不同的韧带图案类型。

我已经写在“固定的数据”片式,将计算基于所述混凝土柱性能每个LIG图案的总长度,然后创建一个下拉菜单上的“列REO”使用VLOOKUP片以匹配起来,问题是我想拖动实际公式,以便它动态调整到它已被复制到的行,并使用该行中的数据来计算总的光照长度。

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

编辑 下面是对文件https://www.dropbox.com/s/c29e0s4g13cr89p/Reo%20calculation%20sheet.xlsx

基于从“列REO”我希望能够从“固定数据”跨越式拉-H4下拉菜单中选择一个相应链接表。但我需要公式来调整它所在的行。

+0

关于“跨拖不明确......使其动态调整到它被复制到的行“。你有没有尝试没有'$'s?示例公式可能会有所帮助。 – pnuts 2014-08-29 09:22:03

+1

这有点难以解释,但列lig模式的公式是坐在数据表中,例如:类型1 - 公式1,类型2 - 公式2 ...我想使用下拉菜单中的值(例如:类型1)复制对应于类型1的公式,但我需要行值进行调整以适合它所在的行...例如:有27种类型,所以它可能从第15行复制到第120行,我需要公式将它从第15行移动到120 – Matt 2014-08-29 09:26:33

+1

在这种情况下,您可能需要考虑INDOWECT和ROW () - 但我怀疑任何人都可以帮助你调整他们看不到的公式。 – pnuts 2014-08-29 09:33:02

回答

1

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

如果您很乐意使用VBA ...

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

  2. 在VBA,创建功能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>>替换为输入单元格的行并返回对其的评估。您可以在工作表公式中使用此功能。在EVAL()功能

0

我的解决方案rellies从Morefunc附加组件*

  1. 如下图所示的fixed data片重新写你的公式。包括引号 - 的细胞都应该只是这个存储为文本,而不是实际执行任何计算:

    这是K5公式的新表示(在L5粘贴): "+((C"&ROW()&"*2)+(D"&ROW()&"4*2))+((C"&ROW()&"/3*2)+(D"&ROW()&"*2))"

  2. 在相应的下拉列表中选择确认您已经MORFUNC工作(尝试写`=的eval(”,看看它是否是公认的功能

  3. column reo表写=EVAL(EVAL(VLOOKUP(H4,'fixed data'!J4:L33,3,FALSE)))细胞K4。这将检查其‘山口型’ ,然后用新公式计算相应的“Lig Pattern”

  4. 对“固定数据”表单上的其他公式重复上述操作,并将公式复制粘贴到所有其他行的“列重做”表上。


MOREFUNC ADDON