Q:這是一名知乎網(wǎng)友提出的問題,如下所示,在列O中自動填寫N班對應的日期。
A:想了半天,沒有想到簡單的公式。使用數(shù)組公式找到N對應的日期數(shù)不難,但是如何將找到的多個日期數(shù)連在一起卻難倒了我!幸好,Excel 2 16版新增了一個TEXTJOIN函數(shù),解決了這個連接問題。
下面是我的數(shù)組公式:
=TEXTJOIN(“,”,TRUE,SMALL(IF($B3:$M3=”N”,COLUMN($B$3:$M$3)-1),ROW(INDIRECT(“1:”& COUNTIF($B3:$M3,”=N”)))))
在單元格O3中輸入完上述公式后,按Ctrl+Shift+Enter組合鍵。然后向下拉即可。
公式中:
COLUMN($B$3:$M$3)-1
得到數(shù)字數(shù)組{1,2,3,4,5,6,7,8,9,1 ,11,12},對應日期數(shù)值。
IF($B3:$M3=”N”,COLUMN($B$3:$M$3)-1)
將單元格區(qū)域B3:M3中的值與“N”比較,如果單元格中的值為“N”,則返回上述日期數(shù)值數(shù)組中的數(shù),否則返回FALSE。這樣,生成數(shù)組:{FALSE,FALSE,FALSE,FALSE,FALSE,6,7,FALSE,9,FALSE,FALSE,FALSE},作為SMALL函數(shù)的第1個參數(shù)。
COUNTIF($B3:$M3,”=N”)
統(tǒng)計單元格區(qū)域B3:M3中數(shù)值“N”的個數(shù),在第3行為3。
ROW(INDIRECT(“1:” &COUNTIF($B3:$M3,”=N”)))
返回數(shù)組{1;2;3},作為SMALL函數(shù)的第2個參數(shù)。
這樣,SAMLL函數(shù)變?yōu)椋?/p>
SMALL({FALSE,FALSE,FALSE,FALSE,FALSE,6,7,FALSE,9,FALSE,FALSE,FALSE},{1;2;3})
忽略布爾值,得到數(shù)組中前3個最小數(shù)值組成的數(shù)組:
{6;7;9}
此時,公式轉(zhuǎn)換為:
TEXTJOIN(“,”,TRUE,{6;7;9})
表明使用“,”將數(shù)組{6;7;9}中的值連接起來,忽略空值。結(jié)果為:
6,7,9
以上是我的解答及過程解析,你有更好的解決方法嗎