2017-02-14 244 views
0

在電子表格公式中(即SumIfs),我希望能夠使用分隔符而不是A1:A3456樣式選擇列範圍,就像我在VBA [Range("A1:A3456")~Range(Cells(1,1),Cells(3456,1))]中所做的那樣。Excel中的VBA樣式範圍選擇

如果這是不可能的,是否有任何解決方法使用「匹配」功能的結果來獲取我想要應用某些標準的列號?

我的功能看起來像

=Sumifs(A2:A10;*{range(cells(1,match(Z5;A1:T1)), cell(10,match(Z5;A1:T1))}*,"="&1) 

...如果只有我可以添加電子表格內VBA公式。

+0

選中此:https://support.office.com/zh-cn/article/OFFSET-function-c8de19ae-dd79-4b9b-a14e-b4d906d11b66 – Vityata

+2

您可以使用RC格式作爲第一個想到的事情。 R1C1是A1,你也可以用這個偏移,例如在單元格B2中寫入「= RC [-1]」時,它將引用同一行和列中的單元格減1或A1。 – Cyril

+1

探索INDEX功能爲MATCH提供的選項 – jkpieterse

回答

0

您可以使用AddressIndirect,像這樣的組合:

=SUM(INDIRECT(ADDRESS(1,1) & ":" & ADDRESS(3456,1))) 

這相當於=SUM(A1:A3456)

ADRESS將來自風格Cells(i,j)款式A1

INDIRECT用於將結果字符串解釋爲範圍地址。

SUM這裏是一個用法的例子。

那麼這是一個有點難看,但如果你想這樣做偶爾並不想完全切換到RC-style,它可能是最簡單的方法。

0

使用偏移量,與工作表函數相比,偏移量大於VBA中的偏移量。

語法

OFFSET(參考,行,COLS,[高度],[寬度])

OFFSET函數的語法具有以下參數:

參考必需。您想要以此爲基準的參考文獻 偏移量。引用必須指代一個單元格或相鄰單元格的範圍; 否則,OFFSET返回#VALUE!錯誤值。

需要行。您希望左上角的單元格引用的行數(向上或向下)。使用5作爲行參數指定 參考中的左上角單元格是低於 參考的五行。行可以是正值(表示低於參考起始 )或負值(表示高於起始參考值)。

Cols必需。左邊或右邊的列數, 您希望結果的左上方單元格引用。使用5作爲 cols參數指定引用右上角的單元格在參考右側的5列中爲 。 Cols可以是正數(其中 表示起始引用的右側)或負數(這意味着 位於起始引用的左側)。

高度可選。您希望 返回的引用的高度(以行數爲單位)爲。身高必須是正數。

寬度可選。您希望 返回的引用的寬度(以列數爲單位)爲。寬度必須是正數。

https://support.office.com/en-us/article/OFFSET-function-c8de19ae-dd79-4b9b-a14e-b4d906d11b66