我在这张工作表上有一张名为 Column Reo 的工作表是一大堆数据输入,因为在具体的列属性上...
例如:
我还有第二张表格,其上有一些名为rages等的固定数据 ......
例如:
等
根据柱子和柱子结构载荷等形状,每个韧带图案需要不同的公式。有27种不同的韧带图案类型。
我已经在"固定数据"上写了公式。将根据具体列属性计算每个lig模式的总长度的工作表,然后在"列reo"上创建一个下拉菜单。使用 VLOOKUP 进行匹配的工作表,问题是我想在实际公式中拖动,以便它动态调整到它被复制到的行并使用该行中的数据计算总长度。
我希望能够正确解释它,我希望没有VBA就可以完成,但如果需要,那就这样吧!
修改 以下是文件https://www.dropbox.com/s/c29e0s4g13cr89p/Reo%20calculation%20sheet.xlsx
的链接根据"列reo" -H4下拉菜单中的选择,我希望能够从"固定数据"中提取公式。对应表。但我需要公式来调整它所在的行。
答案 0 :(得分:1)
作为没有VBA的脏解决方法,您可以将所有类型计算作为单独的列(在列reo表中),然后使用下拉列表选择要为该行返回的这些...丑,但是简单。
如果您愿意使用VBA ......
在您的&#34;固定数据&#34;中输入您的功能查找文本(开头的撇号),如'=+(('column reo'!C<<row>>*2)+('column reo'!D<<row>>*2))+(('column reo'!C<<row>>/3*2)+('column reo'!D<<row>>*2))
(请注意,公式中的行号将替换为<<row>>
在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>>
替换为输入单元格的行,并返回其评估。您可以在工作表公式中使用此函数。
答案 1 :(得分:0)
我的解决方案依赖于Morefunc Addon *的EVAL()
函数
在fixed data
表格上重写您的公式,如下所示。包括引号 - 单元格应该只是将其存储为文本,而不是实际执行任何计算:
这是K5中公式的新表示(要粘贴在L5中):
"+((C"&ROW()&"*2)+(D"&ROW()&"4*2))+((C"&ROW()&"/3*2)+(D"&ROW()&"*2))"
确保你有MORFUNC工作(尝试写'= Eval(“并查看它是否被识别为函数
在column reo
表单=EVAL(EVAL(VLOOKUP(H4,'fixed data'!J4:L33,3,FALSE)))
上写入K4
。这将检查相应下拉列表中选择的“Col类型”,然后使用新公式计算相应的“Lig Pattern”
在“固定数据”表上重复其他公式,并在“列reo”表上复制粘贴所有其他行的公式。
MOREFUNC ADDON