海上月明

          editer by sun
          posts - 162, comments - 51, trackbacks - 0, articles - 8
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          [轉(zhuǎn)]EXCEL中的多條件查詢(整理)

          Posted on 2011-03-29 18:48 pts 閱讀(2707) 評論(0)  編輯  收藏 所屬分類: Office
          EXCEL中的多條件查詢(整理)from:http://hi.baidu.com/binaryfan/blog/item/54dbf7099971cdc63ac7635f.html
          2009-08-17 21:32

          在EXCEL里面有多個(gè)方法可以完成多條件查詢,先來了解合并數(shù)組這個(gè)概念:

          如果Sheet2是這樣的:

          ,B ,C

          張三,一月,90

          張三,二月,85

          張三,三月,95

          那么If({1,0},Sheet2!A1:A3&Sheet2!B1:B3,Sheet2!C1:C3)就是:

          張三一月,90

          張三二月,85

          張三三月,95

          也可以用Choosen({1,2},Sheet2!A1:A3&Sheet2!B1:B3,Sheet2!C1:C3),結(jié)果相同。現(xiàn)在就可以用vlookup來進(jìn)行多條件查詢了:

          {=vlookup(A1&B1,If({1,0},Sheet2!A1:A3&Sheet2!B1:B3,Sheet2!C1:C3),2,false)}

          還可以用sum函數(shù)直線多條件合計(jì)功能:

          {=sum((Sheet2!A1:A3=A1)*(Sheet2!B1:B3=B1)*Sheet2!C1:C3)}

          這個(gè)功能也很有意思,另外還可以用index+match來解決,有一個(gè)值得一提的小技巧是,對于長的公式需要同時(shí)按Ctrl+Shift+Enter來給單元內(nèi)容加上{}

          在理解上述公式之前需要理解if({1,0},......)公式的含義,見下:

          IF({1,0},……)公式的解釋

          把它分解為一塊一塊,把相關(guān)的知識(shí)一一弄明白,合起來一定能明白。

          1、IF(條件,返回值1,返回值2)

          首先你要弄懂這個(gè)函數(shù),如果條件為真,函數(shù)的結(jié)果為“返回值1”,如果條件為假,函數(shù)的結(jié)果是“返回值2”:

          if(true,10,100)=10

          if(1,"A","B")="A"

          if(false,20,30)=30

          if(0,"你","我")="我"


          2、{1,2,3,4}是一個(gè)數(shù)組,一個(gè)數(shù)組能存儲(chǔ)多個(gè)數(shù)值,數(shù)組的表示方式是{}。

          {1,0}是個(gè)水平數(shù)組,它有兩個(gè)值,一個(gè)是1,另一個(gè)是0。

          {"張三","李四","王五"}也是一個(gè)水平數(shù)組,它有三個(gè)值。


          3、連接符&也是這個(gè)公式中的一個(gè)知識(shí)點(diǎn)。

          "A" & "B" & "C"="ABC"

          "Aaa"&"Bcd"&"123"="AaaBcd123"


          字符串可以連接,數(shù)組也可以連接:

          {1,2,3}&{"A","B","C"}={"1A","2B","3C"}


          單元格區(qū)域也可以連接:

          假如A1:A10的數(shù)據(jù)為1到10,B1:B10的數(shù)據(jù)為a到j(luò)。

          A1:A10&B1:B10的結(jié)果就是

          1a

          2b

          3c

          ...

          10j

          再看個(gè)實(shí)際點(diǎn)的例子: 




          4、再回過來說IF()函數(shù)

          當(dāng)條件是一個(gè)單變量時(shí),總代表true和false,即“真”和“假”,它總是返回兩個(gè)值當(dāng)中的一個(gè)。

          但是

          但是,當(dāng)條件不是單變量,而是一個(gè)數(shù)組時(shí),當(dāng)條件為{1,0}時(shí),結(jié)果如何呢?

          記住,返回的結(jié)果與條件一樣,是個(gè)數(shù)組,而且,與條件數(shù)組的列數(shù)相同。


          課堂上,老師說:同學(xué)們好,我們來做個(gè)游戲,當(dāng)老師舉起左手的時(shí)候,你說“語文”,當(dāng)老師舉起右手的時(shí)候,你說100,清楚了沒有?同學(xué)們都說清楚了,于是:


          老師舉起左手,一同學(xué)回答“語文”:If(左手,"語文",100)="語文"

          老師的話隱含了一層意思,左手為真,右手為假,左手為1,右手為0:If(1,"語文",100)="語文"

          接下去的游戲自然還有:If(右手,"語文",100)=100

          即 If(0,"語文",100)=100


          輪到第三個(gè)同學(xué)了,老師把兩只手都舉了起來,那么這同學(xué)怎么回答?

          也許這位同學(xué)會(huì)說“老師,你有病?”當(dāng)然,我更希望這位同學(xué)能回答:“語文”,100。

          不是么:IF({左手,右手},"語文",100)={"語文",100}

          前面提過,左手是真,右手是假,寫標(biāo)準(zhǔn)點(diǎn),就是:

          IF({true,false},"語文",100)={"語文",100}

          也是:IF({1,0},"語文",100)={"語文",100}


          你糊涂了嗎?

          沒有?

          沒有就好。別鉆牛角尖,這個(gè)比方打得可能不太合適。


          接著,老師還會(huì)把游戲繼續(xù)做下去,再把規(guī)則改一改:老師舉左手的時(shí)候,回答科目,舉右手的時(shí)候,回答成績。

          老師舉起左手,同學(xué)D回答:語文、數(shù)學(xué)、英語、計(jì)算機(jī)

          老師舉起右手,同學(xué)E回答:100、90、95、80

          這時(shí),老師把左右手都舉了起來,老師說,如果懂了,請正確說出結(jié)果。

          于是,有同學(xué)回答:"語文",100;"數(shù)學(xué)",90;"英語",95;"計(jì)算機(jī)",80

          老師滿意極了。


          用我們熟悉的方式表現(xiàn)出來,就是:

          =IF({1,0},科目,成績)={"語文",100;"數(shù)學(xué)",90;"英語",95;"計(jì)算機(jī)",80}
          主站蜘蛛池模板: 江津市| 永城市| 息烽县| 鸡西市| 屯留县| 鄂温| 惠州市| 长葛市| 虹口区| 永丰县| 饶阳县| 香港 | 霸州市| 惠水县| 通许县| 磴口县| 华坪县| 固安县| 衡南县| 洛浦县| 绥滨县| 兖州市| 康乐县| 尚义县| 济南市| 南部县| 玉树县| 磐石市| 宣城市| 扶沟县| 湖南省| 漾濞| 临泽县| 广河县| 永善县| 彭山县| 大悟县| 交城县| 扶风县| 卫辉市| 文化|