函數(shù)FILTER執(zhí)行多條件篩選時(shí)有一條定律:多個(gè)條件同時(shí)滿(mǎn)足,條件之間用星號(hào)(*)連接;滿(mǎn)足其中部分條件,條件之間用加號(hào)(+)連接。由此還形成兩個(gè)模板化公式: FILTER(篩選數(shù)據(jù),條件1*條件2*條件3……) FILTER(篩選數(shù)據(jù),條件1+條件2+條件3……) 本著知其然,還要知其所以然的精神,來(lái)一探究竟吧。 先來(lái)了解3個(gè)知識(shí)點(diǎn)。 1.FILTER篩選TRUE對(duì)應(yīng)的數(shù)據(jù)。 B列是要篩選的數(shù)組,C列是手動(dòng)輸入的條件。 =FILTER(B3:B10,C3:C10) 結(jié)論:FILTER篩選出第二參數(shù)中TRUE對(duì)應(yīng)的數(shù)據(jù)。 這是函數(shù)FILTER的底層邏輯。 把條件改為數(shù)字,FILTER篩選出所有非0數(shù)字對(duì)應(yīng)的數(shù)據(jù): =FILTER(B3:B10,C3:C10) 結(jié)論:非0數(shù)字=TRUE,0=FALSE TRUE與FALSE的四則運(yùn)算 回憶一下四則運(yùn)算,加減乘除。 TRUE和FALSE參與四則運(yùn)算時(shí):TRUE等同于1,F(xiàn)ASLE等同于0. 模板公式中的星號(hào)為乘法運(yùn)算,加號(hào)為加法運(yùn)算。 現(xiàn)在,把以上3個(gè)只是點(diǎn)串聯(lián)起來(lái),嘗試著理解這個(gè)公式: =(C3:C10>35)*(D3:D10="男") C3:C10>35:年齡大于35,這個(gè)表達(dá)式將返回一個(gè)由TRUE和FALSE組成的數(shù)組。 D3:D10="男":性別為“男”,這個(gè)表達(dá)式也會(huì)返回一個(gè)由TRUE和FALSE組成的數(shù)組。 兩個(gè)數(shù)組相乘,當(dāng)且僅當(dāng)兩個(gè)TRUE相乘時(shí)才會(huì)得到非0數(shù)字。意味著把它作為FILTER的第2參數(shù)時(shí),兩個(gè)條件都成立的才會(huì)被篩選。 兩個(gè)條件相加時(shí),只要其中一個(gè)是TRUE,結(jié)果就是非0數(shù)字;意味著只要其中一個(gè)條件成立,就會(huì)被篩選出來(lái)。 ![]() 說(shuō)出需求,自動(dòng)幫你寫(xiě)好VBA代碼! 如何把這些知識(shí)表達(dá)清楚是一件比學(xué)習(xí)它們更困難的事。即使無(wú)法完全理解,也希望這些信息對(duì)你有所幫助。 |
|
來(lái)自: 昵稱(chēng)72339616 > 《待分類(lèi)》