dynamic公式
我有一张名为Column Reo的工作表,因为在具体的列属性上有很多数据input。
例如:
- 宽度
- 深度
- 高度
- 没有。 垂直钢筋
- 酒吧的直径
我也有第二张表,有一些固定的数据为一些命名的愤怒等等…
例如:
- 宽度
- 钢筋的常数
- 结扎模式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 …
-
在你的“固定数据”查找中input你的函数作为文本(开始的撇号),就像这样:
'=+(('column reo'!C<<row>>*2)+('column reo'!D<<row>>*2))+(('column reo'!C<<row>>/3*2)+('column reo'!D<<row>>*2))
(注意行号公式被replace为<<row>>
-
在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()
函数*
-
在
fixed data
表上重新编写你的公式,如下所示。 包括引号 – 单元格应该只是将其作为文本存储,而不是实际执行任何计算:这是K5中公式的一种新的表示forms(将被粘贴到L5中):
"+((C"&ROW()&"*2)+(D"&ROW()&"4*2))+((C"&ROW()&"/3*2)+(D"&ROW()&"*2))"
-
确保你有MORFUNC工作(尝试写`= Eval(“,看看它是否被识别为一个函数
-
在单元格
K4
上写入=EVAL(EVAL(VLOOKUP(H4,'fixed data'!J4:L33,3,FALSE)))
。 这将检查在相应的下拉列表中select了哪一个“Coltypes”,然后使用新的公式来计算相应的“Lig Pattern” -
在“固定数据”工作表上重复其他公式,并将公式复制粘贴到“列工作室”工作表中所有其他行。
MOREFUNC ADDON
- Morefunc Addon是一个包含66个新工作表函数的免费库。
- 这里是一些信息(由原作者)
- 这里是我发现的最后一个工作下载链接
- 这里是一个很好的安装步行video