看板 Office 關於我們 聯絡資訊
之前文章的一部分 出了一題作業... 4. 重覆的條件,皆傳回相應的值 這不太算是小技巧了,因為有點麻煩 --------------------------------------------- A B C D 1 b W 1 W 2 a X 3 Y 3 b Y 4 Z 4 B Z 0 FALSE A欄有"b"(不分大小寫)時傳回B欄的內容 C1=MATCH("b",A1:$A$4,0) C2=(MATCH("b",OFFSET($A$1,C1,0):$A$4,0)+C1)*(C1<4)*(C1<>0) 選C2往下拉. 後兩項是避免超過範圍. D1=IF(C1>0,INDEX($B$1:$B$7,C1)) 往下拉 --------------------------------------------- 大意就是用MATCH找出位置,用OFFSET調整下次搜尋的範圍。 要分大小寫的話,好像麻煩了些,就當作業吧XD 新增: 一欄解決的方法用offset或index C1 =IF(ROW()>COUNTIF($A$1:$A$4,"b"),"", OFFSET($B$1,SMALL(IF($A$1:$A$4="b",ROW($A$1:$A$4)),ROW())-1,)) 或 =IF(ROW()>COUNTIF($A$1:$A$4,"b"),"", INDEX($B$1:$B$4,SMALL(IF($A$1:$A$4="b",ROW($A$1:$A$4)),ROW()))) 看起來是變長了,但三個式子合為一個式子,其實寫起來是比較簡單,也比較短 當然計算可能慢了點 但靈活度也大了,要分大小寫就可以改成 =IF(ROW()>COUNT(1/EXACT("b",$A$1:$A$4)),"", INDEX($B$1:$B$4,SMALL(IF(EXACT("b",$A$1:$A$4),ROW($A$1:$A$4)),ROW()))) 要找"含有小寫b" =IF(ROW()>COUNT(FIND("b",$A$1:$A$4)),"",INDEX($B$1:$B$4, SMALL(IF(ISNUMBER(FIND("b",$A$1:$A$4)),ROW($A$1:$A$4)),ROW()))) 不分大小寫,FIND改成SEARCH 作業完成... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.59.188
JieJuen:補充說明,全部是陣列公式,以Ctrl+Shift+Enter結束公式. 11/30 00:07