有網友問到:在 Excel 中有一個資料表(如下圖),其中有 Ref 和 Name 兩個欄位,如何將相同 Name 的資料集合在同一欄,並且列出 Ref,該如何處理?(其中的 Ref 為文字模式)

 

【準備工作】

選取儲存格A1:B6,按一下 Ctrl+Shift+F3 鍵,定義名稱:Ref、Name。

 

【輸入公式】

儲存格D2:

{=IFERROR(INDEX(Ref,SMALL(IF(Name=D$1,ROW(Ref)-1,FALSE),
ROW(1:1)),),"")}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。

複製儲存格D2,貼至儲存格D2:H16。

IF(Name=D$1,ROW(Ref)-1,FALSE):判斷儲存格D1和名稱Name中相符者,找出其對應的Ref 之所在列(例如:ROW(3:3)=3)。

SMALL(IF(Name=D$1,ROW(Ref)-1,FALSE),ROW(1:1)):找出上述 Ref 的最小值。

當公式往下複製時,ROW(1:1)=1 會變為 ROW(2:2)=2 → ROW(3:3)=3 → …。

因此透過 SMALL 函數可以找出最小值(7)、第二小值(14)、第三小值(19)、…。

接著使用 INDEX 函數,以查表方式求得在 Ref 陣列中的內容。

因為這個公式會被複製到儲存格D2:H16,所以使用 IFERROR 函數可以將因為找不到對應值產生的錯誤以空白顯示。

 

【比較】

在另一篇文章中:http://isvincent.pixnet.net/blog/post/38610037

Ref 是純數字,本例為文字,試著比較其間不同的公式變化。

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(3) 人氣()