網友想要在一個清單中,如下圖是多個 IC 接腳及名稱的清單,如何在挑選一個接腳後,列出含有這個接腳的所有 IC?這類問題已多次有網友詢問過,顯見很多人需要這類問題的解答,所以很樂意再說明一次。
(1) 使用『篩選』工具
在資料清單中啟動『篩選』工具,只要勾選想要的接腳名稱,即可篩選出IC的名稱。而篩選結果通常要在其他地方使用,因此,只要複製篩選結果,例如複製儲存格B2:B8,然後在另一個位置貼上,其實只有3個項目會被複製,其中被隱藏的儲存格不會被複製。
這個方法在操作上很簡單,但是如果清單內容改變了,你都要重新篩選一次。
(2) 使用『樞紐分析』工具
你也可以插入一個樞紐表,一次列出所有接腳相關的 IC 名稱,設定如下:
接著,在接腳欄位中按一下「作用中欄/欄位設定」。
在[小計與篩選]標籤下,設定小計為:無。
在[版面配置與列印]標籤下,選取「以列表方式顯示項目標籤」和勾選「重覆項目標籤」選項。
這個方法在操作上也很簡單,但是如果清單內容改變了,你仍然要重新整理才能得到正確結果。
(3) 設計公式
儲存格B2:{=IFERROR(OFFSET($B$1,SMALL(IF($A$2:$A$9=$D$2,
ROW($A$2:$A$9),FALSE),ROW(1:1)),0),"")}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
複製儲存格B2,貼至儲存格B2:B9。
(1) IF($A$2:$A$9=$D$2,ROW($A$2:$A$9),FALSE)
在陣列公式中,判斷儲存格A2:A9中和儲存格D2是否相符。若成立,則傳回一個列號(例如儲存格A4會傳回4);若不成立,則會傳回 FALSE。
(2) SMALL(第(1)式,ROW(1:1))
找出第(1)式中所傳回的所有列號中最小的列號。當公式向下複製時,ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→...,可以找出第2小、第 3 小、... 的列號。
(3) OFFSET($B$1,第(2)式,0)
將第(2)式傳回的列號代入 OFFSET 函數中,取得對應的B欄內容。
(4) IFERROR(第(3)式,"")
因為公式由儲存格B2向下複製,所以在第(2)式的 SMALL 函數可能傳回錯誤訊息。例如:在儲存格D7中要找尋第4小的列號,因為GND只有三個,所以會傳回錯誤。因此,使用 IFERROR 函數將錯誤訊息顯示為空字串("")。
【延伸閱讀-FILTER函數篩選應用】
Excel-下拉式清單選取月份列出該月日期
Excel-2021版新增函數進行篩選、查詢、排序之綜合練習

版主你好 多虧有您的部落格解決我在EXCEL上的許多難解之題 最近遇到一個問題一職無法解決,是否可以版主指點,感謝 如下列圖片 https://goo.gl/VjdJEf
你好,檔案沒有開放共享,所以看不到!
版主你好 多虧有您的部落格解決我在EXCEL上的許多難解之題 最近遇到一個問題一職無法解決,是否可以請版主或是各路高手指點,感謝 如下列圖片 (已分享) https://goo.gl/k5R5Qo
google回應 404 error
https://goo.gl/photos/NdZv7jW3bDYNa3GX6 不好意思,這個連結應該可以看到
請參考:http://isvincent.pixnet.net/blog/post/46265842
感謝大大, 不好意思, 若是我要再將有GND零件的另一隻腳位資訊顯示出來要該怎執行呢? 也就是以GND為搜尋條件, 而要的資訊是他另一端的名稱. 再麻煩版主解惑, 感謝
在儲存格E4輸入: {=IFERROR(OFFSET($A$1,SMALL(IF($A$2:$A$9=$D$2,ROW($A$2:$A$9),FALSE),ROW(1:1)),0),"")}
請問作者 文中用公式的方法裡 "複製儲存格B2,貼至儲存格B2:B9" 是不是誤打,正確是"複製儲存格D4"嗎? 為何我用上述的方式輸入後每個對應值都往下一欄 例如:原本GDN對應的第一個是D2,但跑出來的數值都往下一欄變D3 還請作者不吝指教,謝謝