2014-08-29 60 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