亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
690
2025-04-03
如何用公式實現自動填入滿足相應條件的數字?
Q:這是一名知乎網友提出的問題,如下所示,在列O中自動填寫N班對應的日期。
A:想了半天,沒有想到簡單的公式。使用數組公式找到N對應的日期數不難,但是如何將找到的多個日期數連在一起卻難倒了我!幸好,Excel 2 16版新增了一個TEXTJOIN函數,解決了這個連接問題。
下面是我的數組公式:
=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
得到數字數組{1,2,3,4,5,6,7,8,9,1 ,11,12},對應日期數值。
IF($B3:$M3=”N”,COLUMN($B$3:$M$3)-1)
將單元格區域B3:M3中的值與“N”比較,如果單元格中的值為“N”,則返回上述日期數值數組中的數,否則返回FALSE。這樣,生成數組:{FALSE,FALSE,FALSE,FALSE,FALSE,6,7,FALSE,9,FALSE,FALSE,FALSE},作為SMALL函數的第1個參數。
COUNTIF($B3:$M3,”=N”)
統計單元格區域B3:M3中數值“N”的個數,在第3行為3。
ROW(INDIRECT(“1:” &COUNTIF($B3:$M3,”=N”)))
返回數組{1;2;3},作為SMALL函數的第2個參數。
這樣,SAMLL函數變為:
SMALL({FALSE,FALSE,FALSE,FALSE,FALSE,6,7,FALSE,9,FALSE,FALSE,FALSE},{1;2;3})
忽略布爾值,得到數組中前3個最小數值組成的數組:
{6;7;9}
此時,公式轉換為:
TEXTJOIN(“,”,TRUE,{6;7;9})
表明使用“,”將數組{6;7;9}中的值連接起來,忽略空值。結果為:
6,7,9
以上是我的解答及過程解析,你有更好的解決方法嗎
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。