2017-08-09 41 views
0

與相同數據的兩個連續的行我有類似的數據大約100列的數據庫以從COL A至H. COL搜索在Excel

我使用在式COL J用列搜索兩個連續的行使用「 - 」,並將第二行標記爲double,如您在J16和J32上所看到的。 這種方法非常耗時,因爲我經常搜索不同的列,並且每次都必須更改公式。

我想要類似N3的東西。輸入列ID,當我按Enter時,我將自動獲得連續兩次「 - 」的行數,同時我想增加搜索三元組和四元組。

任何幫助將不勝感激。

式上J2:

=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","") 

image here

+0

靈機一動涉及指數,代碼和COUNTIFS(後者與偏移範圍),但根本就沒有辦法,我要重新輸入數據。 – Jeeped

+0

謝謝。我怎樣才能在這裏上傳一個excel文件? –

+0

我認爲一個excel公式可能太過於複雜......你可以使用宏嗎?我認爲使用N3上的數據驗證並使用'Worksheet_Change'事件更改N5中的數據會更容易:N7 – dwirony

回答

1

在N5計數加倍,

=COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-") 

這是使用的動態等效,

=COUNTIFS(G2:G20, "-", G3:G21, "-") 

在N6來算三倍,

=COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 4, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+2, CODE(UPPER(N3))-64), "-") 

在N7來算四邊形,

=COUNTIFS(INDEX(A:H, 2, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64)), CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 3, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+1, CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 4, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+2, CODE(UPPER(N3))-64), "-", 
      INDEX(A:H, 5, CODE(UPPER(N3))-64):INDEX(A:H, MATCH("zzz", INDEX(A:H, , CODE(UPPER(N3))-64))+3, CODE(UPPER(N3))-64), "-") 

如果您需要quints,你應該能夠從那些有想法。

enter image description here

+1

就在我打字的時候,我認爲一個excel公式可能會「太複雜」,你帶着這個來!當然! – dwirony

+0

謝謝你們。這兩個公式都很棒。我感謝您的幫助。 –

+0

@Jeeped使用非常大的實際數據,我發現如果所有列的結果都顯示在底部同時顯示,那麼我們可以消除輸入框,這樣會更好。我上傳了一個修改後的圖片。請問你能幫幫我嗎。 –

1

你想用細胞N3的列條目。你可以使用間接函數來做到這一點。剛剛從此更改單元格J2 公式:

=IF(AND(OR(F2=F1,F1="-"),F2="-"),"double","") 

... 此:

=IF(AND(INDIRECT(N$3&ROW())="-",INDIRECT(N$3&ROW()-1)="-"),"double","") 

您可以捕捉三人間和以同樣的方式四倍,試試這個公式.. 。它只能從第4行開始工作,結果可能會感到凌亂,取決於你需要什麼:

=IF(AND(INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),IF(AND(INDIRECT(N$3&ROW()-2)="-",INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),IF(AND(INDIRECT(N$3&ROW()-3)="-",INDIRECT(N$3&ROW()-2)="-",INDIRECT(N$3&ROW()-1)="-",INDIRECT(N$3&ROW())="-"),"quadruple","triple"),"double"),"") 
+0

如何將圖像中顯示的所有列的結果放在底部?謝謝 –

0

With ref erence上圖的底部,有:

  1. 輔助細胞N1:N2N9:N19,其內容可以幫助您需要的是更爲簡潔的公式。 請參閱下面的解釋和公式。

  2. 單元格與您需要的公式,使用SUMPRODUCT結合某種形式的動態引用。

    1. 細胞N5:N7 給你想要的結果,但有固定的引用。這些都是
      N5=SUMPRODUCT(($G$2:$G$21="-")*($G$3:$G$22="-"))
      N6=SUMPRODUCT(($G$2:$G$20="-")*($G$3:$G$21="-")*($G$4:$G$22="-"))
      N7=SUMPRODUCT(($G$2:$G$19="-")*($G$3:$G$20="-")*($G$4:$G$21="-")*($G$5:$G$22="-"))
      可以把握系統學。

    2. 細胞O5:O7 給出相同的結果,使用INDIRECT,而不是固定的引用(選項#1,你需要什麼,見this)。這些都是
      O5=SUMPRODUCT( (INDIRECT($N$3&$N$9):INDIRECT($N$3&($N$10-1))="-") *(INDIRECT($N$3&($N$9+1)):INDIRECT($N$3&$N$10)="-") )
      O6=SUMPRODUCT( (INDIRECT($N$3&$N$9):INDIRECT($N$3&($N$10-2))="-") *(INDIRECT($N$3&($N$9+1)):INDIRECT($N$3&($N$10-1))="-") *(INDIRECT($N$3&($N$9+2)):INDIRECT($N$3&$N$10)="-") )
      可以把握系統學和寫入單元格O7公式。

    3. 細胞P5:P7 給出相同的結果,使用OFFSET而不是固定的引用(選項#2你需要什麼,見thisthis,或this)。這些都是
      P5=SUMPRODUCT( (OFFSET($A$1,$N$12,$N$14):OFFSET($A$1,$N$13-1,$N$14)="-") *(OFFSET($A$1,$N$12+1,$N$14):OFFSET($A$1,$N$13,$N$14)="-") )
      P6=SUMPRODUCT( (OFFSET($A$1,$N$12,$N$14):OFFSET($A$1,$N$13-2,$N$14)="-") *(OFFSET($A$1,$N$12+1,$N$14):OFFSET($A$1,$N$13-1,$N$14)="-") *(OFFSET($A$1,$N$12+2,$N$14):OFFSET($A$1,$N$13,$N$14)="-") )
      可以把握系統學和寫入單元格P7公式。

    4. 結合INDIRECTOFFSET(參見this)可能有其他選項。使用INDEX的選項(儘管可能不是唯一的變體)被Jeeped覆蓋。


注意對輔助細胞: 我建議有輔助細胞,這也適用於張貼在這裏以及其他的答案。 當然,您可以移動這些單元格,調整相應的公式。 這裏唯一不重要的公式是單元格N11,=COLUMN(INDIRECT($N$3&"1"))(請參閱thisthis)。 如果您要使用INDEX,則單元格N19可能會很有用。

enter image description here