乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Excel列表數(shù)據(jù)處理:另類(lèi)篩選 - Excel函數(shù)式編程

       ExcelEasy 2024-07-19 發(fā)布于北京


      繼續(xù)介紹列表數(shù)據(jù)處理。

      在Excel中,如果我們需要列出列表中滿足條件的記錄,可以使用FILTER函數(shù),比如:

      =FILTER(A2:A6,A2:A6<>"b")

      篩選的就是第一列數(shù)據(jù)中不等于b的那些元素。

      這個(gè)函數(shù)提供了很大的便利。但是有一點(diǎn)麻煩的地方,那就是我們必須了解需要篩選的結(jié)構(gòu),因?yàn)樵诙x條件時(shí)你必須知道是對(duì)哪個(gè)具體區(qū)域定義的,也就是說(shuō),在第二個(gè)參數(shù)追蹤必須包含完整的條件區(qū)域,比如,

      A2:A6<>"b"

      在實(shí)際工作中場(chǎng)景中,我們運(yùn)用篩選時(shí),可能未必對(duì)其中數(shù)據(jù)的內(nèi)部框架結(jié)構(gòu)了解得那么清楚。因此,在定義條件時(shí),我們更愿意不去涉及具體區(qū)域。

      上面的篩選需求,如果要使用文字描述的話,我們可以這么說(shuō):

      篩選區(qū)域中那些不等于“b”的元素。

      這里,我們使用那些代表需要設(shè)置條件的區(qū)域,這就規(guī)避了對(duì)區(qū)域的引用。

      實(shí)際上,在Power Query的M語(yǔ)言中,就有一個(gè)LIST.SELECT函數(shù),使用的就是類(lèi)似的方案。

      我們今天就在Excel中實(shí)現(xiàn)這個(gè)功能。

      簡(jiǎn)單方案

      我們的方案相當(dāng)簡(jiǎn)單,使用一個(gè)自定義函數(shù)表示篩選條件:

      select_func(x)

      這里的x就是我們?cè)谏衔闹械摹?/span>那些”,然后循環(huán)檢查待篩選列表中的每一個(gè)元素,如果符合返回true,否則,返回false。

      這樣我們就可以得到一個(gè)邏輯值數(shù)組。

      用這個(gè)數(shù)組對(duì)列表進(jìn)行篩選即可。

      實(shí)現(xiàn)代碼很簡(jiǎn)單:

      /** 選取滿足條件的元素*/myFilter = LAMBDA(list, select_func,    LET(        cond, MAP(list, LAMBDA(            a, select_func(a)        )),        FILTER(list, cond)    )
      這里,我們使用了MAP函數(shù)對(duì)列表進(jìn)行循環(huán)。
      調(diào)用示例

      下面是一個(gè)調(diào)用的例子

      =myFilter(A2:A6, LAMBDA(x, x <> "b"))

      使用多個(gè)條件,

      =myFilter(A2:A6, LAMBDA(x, AND(x <> "b", x <>"a")))
      討論

      現(xiàn)在的實(shí)現(xiàn)方案中,我們使用MAP函數(shù)循環(huán)列表數(shù)據(jù)。

      這就導(dǎo)致這個(gè)篩選函數(shù)只能用于單列數(shù)據(jù)。如果有多列數(shù)據(jù),就不能滿足我們的期望。

      此時(shí),就需要使用其他循環(huán)函數(shù)了。

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多