2014-12-07 47 views
0

如果在COUNTIFS以上工作一步,我會提出一個挑戰,在沒有VBA代碼的情況下編寫一個公式。基本數據是從1000結合的行:同時使用COUNTIFS獲取一系列值

  • 柱A:行同值從1到3
  • B欄:具有1值的行到250。

爲此可以說,我們正在查看A列中值爲「1」的所有單元格,B列中的值爲「5」。要查找所有匹配項,我們將使用COUNTIFS命令。

1 1 
2 5 
1 5 
1 7 
1 10 
3 45 
2 12 
1 2 
2 1 

=COUNTIFS(A1:A9;1;B1:B9;5) 

答案這裏是1

接着事,在列「5」 B所屬的組,例如最好的方法是,計算這個例子中的所有匹配,這樣對於列A中的所有「1」,我們必須找到所有匹配的值爲1到9的值B列?在上面的例子中會導致「4」。顯而易見的解決方案是使用一系列IF命令,但這樣做效率不高,很容易出錯,而且很容易監控。

=COUNTIFS(A1:A9;1;B1:B9;"<="&9) 

僅作爲上限。如果我給第三標準範圍和條件爲「> =」 & 1這是行不通的 - 返回0

加斯珀

+0

我不明白爲什麼你認爲COUNTIFS不會對這項工作,你可以指定多個範圍和條件是什麼?我認爲你需要展示一個你的數據的例子,因爲這個問題還不清楚。 – 2014-12-07 12:17:02

+0

我編輯了一下。希望它現在更清楚 – energyMax 2014-12-07 15:45:54

+0

你能給出你的**預期結果**表嗎?我沒有清楚地理解你想要做什麼?您正在尋找的預期專欄是什麼? – AHC 2014-12-07 18:04:38

回答

1

在數據是在A1:B9,使用查找表在D1:E10與柱d字母AJ和數字0至9列E和下列公式中B11參考字母輸入A11和A12:

= COUNTIFS(A1:A9,1,B1:B9,「> =」& VLOOKUP(A11,$ D $ 1:$ E $ 10,2,FALSE),B1:B9, 「< =」 & VLOOKUP(A12,$ d $ 1:$ E $ 10,2,FALSE))

作品,在A11和A12改變字母給出正確的計數根據他們所做的對應於D1:E10中的looku。

+0

它的工作原理,我終於意識到我的問題是在別的地方。問題是,我的第二個標準範圍不被識別爲單元格中的數字(下圖)。如果你看公式 - 這是N列。甚至有可能將文本轉換爲一個公式中的數字?例如NUMBERVALUE? http://shrani.si/f/1C/Kx/mAYK9Wz/textnumber.jpg – energyMax 2014-12-07 21:10:36

+0

我有點晚了,可以肯定你現在可能已經明白了,但我認爲excel的VALUE()函數將會將存儲爲文本的數字轉換回數字。您也可以使用TRIM()刪除任何空格。或者將您的數據保存爲CSV文件,然後再回到Excel中並假定沒有空格,則所有數字都將以數字形式存儲。對於從電子表格中取出任何格式,CSV文件通常很有用,同時也可以刪除保護和任何公式。 – fraggle 2014-12-08 13:28:37

1

當你說給第三標準範圍你的意思是:

= COUNTIFS (A1:A9; 1; B1:B9; 「< =」 & 9,B1:B9; 「> = 1」)

如果是,則嘗試:

= COUNTIFS(A1:A9; 1; B1:B9; AND(「< =」& 9, ; 「> = 1」))

即,具有與具有兩個條件與結合第二範圍AND()

+0

Thnks。但它並不總是有效。看看評論 – energyMax 2014-12-07 16:54:22

+0

不在我的電腦,所以目前無法測試這個,但相當肯定的是,你需要結合B和AND()的兩個條件,所以你只是測試一次B,但是對於一系列值,你的查找應該然後工作 – fraggle 2014-12-07 17:04:20

+0

您的意見是非常感謝。但它不起作用。我發佈了整個公式..在這種情況下,VLOOKUP提供了上限和下限 – energyMax 2014-12-07 17:12:23

-1

幾乎有兩項有條件範圍。我注意到,只有在條件中使用「=」符號時,三個標準範圍和條件才起作用。當我使用

=COUNTIFS(A1:A9;1;B1:B9;"<="&9,B1:B9;">=1") 

則返回0。我的目標是eventualy替換用VLOOKUP命令的情況的數量,所以最終的公式應該是像水木清華

=COUNTIFS(A1:A9;1;B1:B9;"<="&VLOOKUP(...),B1:B9;">=VLOOKUP(...)") 

但「 <「和」>「標誌混亂。仍在尋找解決方案。

+0

如果您的問題需要澄清,請編輯它,不要發佈作爲答案什麼不是。 – pnuts 2014-12-12 03:30:35

-1

這是我的整個生產線,如果它提供任何進一步的指示。的AND()命令是在端部 - 它仍然導致0

=COUNTIFS(INDIRECT(CONCATENATE("baza!$";SUBSTITUTE(ADDRESS(1;MATCH("card_type_id";baza!$A$1:$AAA$1;0);4);"1";"");"$2:$";SUBSTITUTE(ADDRESS(1;MATCH("card_type_id";baza!$A$1:$AAA$1;0);4);"1";"");"$15000"));IF(C6="računska";1;0);INDIRECT(CONCATENATE("baza!$";SUBSTITUTE(ADDRESS(1;MATCH(IF($C$4="CC_SI_klasifikacija";"building_classification_id";0);baza!$A$1:$AAA$1;0);4);"1";"");"$2:$";SUBSTITUTE(ADDRESS(1;MATCH(IF($C$4="CC_SI_klasifikacija";"building_classification_id";0);baza!$A$1:$AAA$1;0);4);"1";"");"$15000"));AND("<="&VLOOKUP($C$5;$K$203:$N$223;4;FALSE);">="&VLOOKUP($C$5;$K$203:$N$223;3;FALSE))) 
0

也許你想要什麼(ED)是:

=COUNTIFS(A:A;1;B:B;">=1";B:B;"<=9") 
相關問題