返回列表 上一主題 發帖

[發問] 請問如何使VLOOKUP搜尋值相同,但搜尋結果不同(已解決)

[發問] 請問如何使VLOOKUP搜尋值相同,但搜尋結果不同(已解決)

本帖最後由 yeeki 於 2012-5-25 18:04 編輯

大家好,
我想用VLOOKUP把工作表「名單」中包括SMS類別欄內包括「am」的列資料顯示在工作表「AM-SMS」的工作表中……
但是我用VLOOKUP的話,所以列都只會顯示第一筆的am資料,請問我可以用甚麼方法使所有am資料都顯示出來……

這是「名單」的工作表


這是「AM-SMS」的工作表(我想要的結果)

樓主~ 其實用樞紐是不是更方便呢???
提供你另一種思維~
學習才能提升自己

TOP

回復 6# age54321


    A2=INDEX(名單!A:A,SMALL(IF(名單!$A$2:$A$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1)))&""   
最外層是INDEX函數中間是SMALL內層是IF理解起來應不難
一般較長的公式可在編輯列中由最內層公式用滑鼠反白後按F9再往外延伸可知公式如何作用
IF(名單!$A$2:$A$10000="AM",ROW($A$2:$A$10000),65536)
假如A2到A10000的值等於"AM"就給2:10000的值,否則給65536 (65536是A欄最後一個位置)
SMALL(IF(名單!$A$2:$A$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1))
IF公式中所得到的陣列取第幾小的值(依ROW的位置決定取值)

TOP

請問A2=INDEX(名單!A:A,SMALL(IF(名單!$A$2:$A$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1)))&""   
的公式要如何解讀

TOP

回復  yeeki

AM-SMS工作表
A2=INDEX(名單!A:A,SMALL(IF(名單!$E$2E$10000="AM",ROW($A$2A$10000), ...
register313 發表於 2012-5-25 10:20



    您好,
問題已經解決,公式沒有問題了~
另外我想問SMALL(IF(名單!$E$2:$E$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1)),中的「65536」是有甚麼作用呢?
謝~

TOP

回復 3# yeeki

AM-SMS工作表
A2=INDEX(名單!A:A,SMALL(IF(名單!$E$2:$E$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1)))&""    陣列公式(輸好公式要按CTRL+SHIFT+ENTER而不是直接按ENTER)
右拉下拉

TOP

回復 2# register313


    感請您的回覆,
我在EXCEL中使用公式時,只有第1筆資料成功顯示出來,由第3列開始儲存格就顯示#NUM!
另外,如果我的SMS類別不是在A欄而是在E欄的話,是不是只要把「名單!A:A」和「名單!$A$2:$A$10000」改為「名單!E:E」和「名單!$E$2:$E$10000」就可以?

謝~

TOP

回復 1# yeeki

AM-SMS工作表
A2=INDEX(名單!A:A,SMALL(IF(名單!$A$2:$A$10000="AM",ROW($A$2:$A$10000),65536),ROW(A1)))&""    陣列公式
右拉下拉

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題