2016-01-22 35 views
1

理想情況下,我不想深入研究VBA,因爲我已經不是EXCEL最棒的了。這是我的情況,並且預先感謝任何能夠幫助的人!...EXCEL - 如何找到具有特定內容的單元格,然後在另一個公式中引用該CELL(而不是其內容)? (範例內)

工作表中第1行中稱爲「工作負載」的每個單元格都是上升日期。所以,A1 = 1/1/2016 - B1 = 1/2/2016 - C1 = 1/3/2016等...

在另一張名爲「legend」的表中,我有這個公式:

=COUNTIF(workload!$A$2:$AE$66,"some text string") 

「工作負載」中有65行實際的非標題數據(第2-66行)。該公式在A2-AE66的任何單元格中查找「某些文本字符串」的所有實例(我的所有非頭文件數據)。實際上,這給了我1/1/2016-1/31/2016(在該日期範圍內31個遍歷的31個列)的「日期範圍」(基於上述第1行中的標題)。

我想要做的是有兩個其他單元格,我可以輸入開始日期和結束日期。所以,我在找的是一種方法,使我COUNTIF公式讀到這樣:

=COUNTIF(workload!$START_DATE_COLUMN$2:$END_DATE_COLUMN$66,"some text string") 

如果是完全混亂,一個實際的例子會產生以下的效應,如果我進入「1/2/2016" 到我的START DATE細胞和 「2016年1月15日」 到我的END DATE CELL:

=COUNTIF(workload!$B$2:$O$66,"some text string") 

(因爲列B具有的值 「在其標題行2016年1月2日」[B2]並且列O在其標題行[O2]中的值爲「1/15/2016」)

我希望一切都有意義,並且是可能的!謝謝!

回答

0

這結束了對我的工作,供參考:

=COUNTIF(INDIRECT("'workload'!"&ADDRESS(1,MATCH(legend!A1,workload!1:1,0))&":"&ADDRESS(66,MATCH(legend!A2,workload!1:1,0))),"Red") 
1

您可以用一對INDEX/MATCH函數對構造範圍。

=COUNTIF(INDEX(workload!A:ZZ, 2, MATCH(START_DATE_COLUMN, workload!1:1, 0)): 
     INDEX(workload!A:ZZ, MATCH("zzz", workload!A:A), MATCH(END_DATE_COLUMN, workload!1:1, 0)), 
     "some text") 

上述假設您已經創建了一個名爲範圍(例如START_DATE_COLUMN和END_DATE_COLUMN)

+0

其實我完全不知道是什麼是/裝置。這是一個簡單的概念嗎?我會谷歌周圍。謝謝! – MHoff

+1

@MHoff簡而言之:MATCH查看1維數組[行或列],並告訴您發現匹配的元素數量[或者如果找不到匹配則發生錯誤]。即:在列A中顯示的字母表中,MATCH(「D」,A:A,0)將提供結果「4」,因爲D在第四行中找到。 INDEX基本上是相反的 - 給它一個數組和一個元素號,它將返回該元素。即:INDEX(A:A,4)在我們的例子中返回結果「D」。因此,您可以將它們拆分成不同的單元格,或者像INDEX(B:B,MATCH(「D」,A:A,0)))組合,給出col B值,其中col A =「D」 –

相關問題