請教Excel多條件篩選並傳回某列數值

不方便透漏公司訊息,儲存格數值作了修改並簡略化

請先參照下方Excel截圖

請教Excel多條件篩選並傳回某列數值

此表格是用在確認某批號的某個流水號是否有被檢查,並回傳檢查日期
但原本的index+match函數下,批號A-1流水號15傳回的檢查日期是4/22
但實際上應該是4/26
我猜想應該是index+match函數無法匹配同一列的批號和流水號的關係
故想在此請教是否有更好的寫法或函數,又或是先拆成兩個儲存格計算再介由另一個儲存格傳回結果
還請Excel大神們不吝賜教
在此先感謝看完此文章的人,謝謝~
H3(日期格式)(有重複資料時,此公式不適用)
=SUMPRODUCT(--(B3:B12=F3),--(C3:C12<=G3),--(D3:D12>=G3),A3:A12)
留一部份,讓您練習,條件不合,找不到結果時,會回傳0(數值) 或 1900-1-0(日期)
請自行用 if …,過濾找不到時的情況





neation
感謝回覆! 如果批號一定會重覆,但是不同列的起始號和末號也有重覆,那這樣也不能套用此公式嗎?
neation wrote:
如果批號一定會重覆,但是不同列的起始號和末號也有重覆,那這樣也不能套用此公式嗎?


建議給模擬測試資料時,請考慮到所有可能的狀況
格式、位置…等等,都要一樣(可以的話,請附檔+正確手動計算的結果)
才不會造成同一問題,卻要多次修改公式的情形


這是舊版excel寫法,新版excel,有強大函數可用
例如AGGREGATE、filter…詳細請自行google

h3(日期格式)(ctrl+shift+enter)(公式往下拉)
=IFERROR(INDEX($A$3:$A$24,SMALL(IF(($B$3:$B$24=$F$3)*($C$3:$C$24<=$G$3)*($D$3:$D$24>=$G$3),ROW($A$3:$A$24)),ROW(A1))-(ROW(A$1)-1)-2,1),"")








補充上面2張圖格式化條件(綠色)的公式
根據格式化條件套用範圍的不同(公式不用改),可以有不同的變化

=ROW($B3)=IF(($B3=$F$3)*($C3<=$G$3)*($D3>=$G$3),ROW(),FALSE)


看完大家的留言,我再也不敢在公司說自己是excel小王子了
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!