返回列表 上一主題 發帖

[發問] 傳回符合某字串的相應資料

[發問] 傳回符合某字串的相應資料

223198        a        1        MMAU1002975/225175/0164800
222693        b        2        MNBU3303724/0168946/225113
222765        c        3        MNBU3312217/ML-PY0014147/771925/0159196
221491        d        4        MWCU5327856/MLPY0012388/0168382/030775
216914        e        5        PONU4507220/0168365/030771/ML-PY 0012384
222692        f        6        MWCU6080708/0168366/030773/ML-PY 0012386
220637        g        7        MNBU9023572/030768/0168367
222982        h        8        MWCU6805707/0168368/030772/ML-PY0012385
                       
                       
                       
請問不是用VBA, 如何設定公式輸入4507220, 就傳出216914 , e, 5

本帖最後由 kimbal 於 2013-10-2 19:02 編輯
223198        a        1        MMAU1002975/225175/0164800
222693        b        2        MNBU3303724/0168946/225113
222765        c        3        MNBU3312217 ...
198188 發表於 2013-10-2 17:25


不嫌複雜的話可以用陣列公式



E1 輸入輸要的數字
E2: =OFFSET(A1,MAX(IF(NOT(ISERROR(SEARCH(E1,(D1:D8),1))),ROW(D1:D8),0))-1,0)
F2: =OFFSET(B1,MAX(IF(NOT(ISERROR(SEARCH(E1,(D1:D8),1))),ROW(D1:D8),0))-1,0)
G2:=OFFSET(C1,MAX(IF(NOT(ISERROR(SEARCH(E1,(D1:D8),1))),ROW(D1:D8),0))-1,0)
輸入公式時記得按CTRL+SHIFT+ENTER

(編輯:再"簡化"一點,
選上E2到G2, 輸入陣列公式 [也是要按CTRL+SHIFT+ENTER]
=OFFSET(A1,MAX(IF(NOT(ISERROR(SEARCH(E1,(D1:D8),1))),ROW(D1:D8),0))-1,COLUMN(A1:C1)-1)
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

=OFFSET(A1,LOOKUP(9^9,SEARCH($E1,($D$2:$D$9),1),ROW(D1:D8)),0)

TOP

A1:D8 資料區
E1 輸入輸要的數字
E2  =LOOKUP(,-FIND($E1,$D1:$D8),A1:A8)
右拉3格(公式一式完成)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 2# kimbal


    如果這個excel內含有VBA, 採用這個公式後,會導致VBA運行非常慢。請問有辦法解決嗎?

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題