有位網友每天都要在 Excel 工作表中 Keyin 很多的資料(如下圖),而這些資料之後又要依姓名分別列到各個工作表中。我們能做到在主工作表輸入好資料時,其他分頁工作表的內容就自動到位嗎?因為每天耗時 Keyin 二次,真是浪費生命啊!
其實你只要使用「篩選」功能,分幾次複製到各個工作表就可以解決這個問題了。而你如果想要讓公式來代勞,也想省去操作「篩選」的步驟。參考以下的做法。
在下圖中,假設工作表名稱為 DATA。而資料範圍為儲存格A1:C25。
在主工作表DATA中,目前有甲、乙、丙、丁、戊五個人,如何在五個工作表中篩選各自的資料呢?以下用「甲」工作表為例來設計公式。
儲存格A1:{=OFFSET(DATA!$A$1,SMALL(IF(DATA!$A$2:$A$25=甲!$A$1,
ROW(DATA!$A$2:$A$25),9999),ROW(1:1))-1,COLUMN(A:A)-1)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動產生「{}」。
複製儲存格A1,貼至儲存格A1:C17。
(1) IF(DATA!$A$2:$A$25=甲!$A$1,ROW(DATA!$A$2:$A$25),9999)
在陣列公式中判斷DATA工作表的儲存格A2:A25中是否為『甲』,若是傳回儲存格A2:A25對應的列號,否則傳回『9999』。(9999只是隨機的一個很大的數)
(2) SMALL(第(1)式,ROW(1:1))
利用 SMALL 函數根據第(1)式所得的列號,依序傳回由小到大的列號。
(3) OFFSET(DATA!$A$1,第(2)式-1,COLUMN(A:A)-1)
在 OFFSET 函數中以第(2)式傳回的列號得到對應的儲存格內容。
將工作表「A」的公式內容,複製到其他乙、丙、丁、戊工作表,並修改各自的儲存格A1內容為對應的姓名。
註:本例未處理查到不資料時的傳回值。
【延伸閱讀-FILTER函數篩選應用】
Excel-下拉式清單選取月份列出該月日期
Excel-2021版新增函數進行篩選、查詢、排序之綜合練習
Excel-列出非空白項目的清單(比較篩選函數和以陣列公式模擬篩選)

請問要如何把篩選到的列分散到等差的列,例如第一次篩選到的列分散到第1、4、7、10........,第二次篩選到的列分散到第2、5、8、11..........,第三次篩選到的列分散到第3、6、9、12...........,以此類推,形成一個有規則性的工作表
*****
*****
你好! 如果我以這個案例做基礎,我想要某個關鍵字做分類要在加入哪些公式呢? EX : 我有PC-XXXXX & PE-XXXXX,要以PC開頭跟PE開頭分類要如何做? 或是第N個字元符合某個英文字做篩選分類要如何做? 有類似的可參考嗎?
你好~想詢問有沒有更詳細的內容說明,照著上面作做但資料卻沒有帶入,謝謝你
Hi, 關於拆工作表的部分,樞紐分析表可自動分頁,但是offset可針對某些特定資料進行分頁,真的非常有幫助. :) 實際操作後根據上面的函數資料帶出來了,但如過將函數分層拆解後關於"傳回儲存格A2:A25對應的列號"的部分,無法確認是否為正確.例如, 以"甲"為例子,在以下儲存格填入IF(DATA!$A$1:$A$25=$A$1,ROW(DATA!$A$1:$A$25),9999),分別得到以下數值, A1 甲 A2 姓名 A3 9999 A4 1 A5 9999 A6 9999 A7 1 A8 9999 A9 9999 A10 1 1代表此儲存格為"甲",而9999為其它,是否正確? "行號"的部分從哪一層函數可得出? 可否請您的幫忙? 謝謝
您好,想請問一下,依照您的說明輸入完我需要的函數後,excel都會顯示"Microsoft Office Excel無法計算某一公式,開起的活頁簿含有循環參照,但是參照導致無法為您列示,請嘗試編輯您最後輸入的公式,或使用"復原"命令以移除公式"....請問我該如何解決好?抱歉我不是很懂excel,所以,不太懂有循環參照是什麼意思?又該如何解決?煩請您解惑了,麻煩您了,謝謝!
你好 請問該如何確認回傳值是不是陣列呢? 我在確認 SMALL(IF(DATA!$A$2:$A$25=甲!$A$1,ROW(DATA!$A$2:$A$25),9999),ROW(1:1)) 這個式子的時候 我將ROW(1:1)直接改為數字值 當數字值為1時可以正常操作 當數字值為0或2時則回傳一個#NUM!的值給我
傳回#NUM!,表示找不到對應的數值。 上述公式中的9999可以使用「""」取代之。
您好~想請問 =OFFSET(DATA!$A$1,(SMALL(IF(DATA!$D$2:$D$9528=$B$1,ROW(DATA!$D$2:$D$9528),9999),ROW(1:1)))-1,COLUMN(A:A)-1) 有時候可以呈現表2有時候無法原因,我無法找出原因 表1 姓名 交易時間 交易金額 業務 王X 8/16 500 小A 李X 8/17 1000 小B 王X 8/18 2000 小A 陳X 8/30 3000 小C 表2 業務 小A 姓名 交易時間 交易金額 業務 王X 8/16 500 小A 王X 8/18 2000 小A
請問,我用以上公式在同一表格可以顯示資料,但是如果篩選到另一表格就會顯示0,是因為什麼呢?
老師你好! 我有試用你做的這個例子,做出來很開心 今天遇到天兵妹仔把原始資料作刪改,會導致表內的公式offset的位置跑掉
請問資料範圍DATA/A2:G2000 要篩選的欄位如果是第五欄E欄呢 然後仍可以列出找該列的位置,從最小的列,循列拉出從A欄到G欄嗎 目前在目的地工作表A2={OFFSET(DATA!$E$1,SMALL(IF(DATA!$E$2:$E$2000=Ivy!$A$1,ROW(DATA!$E$2:$E$2000),9999),ROW(1:1))-2,COLUMN(A:A)-5} 請問為什麼答案不正確呢 無法篩選出有Ivy的所有列
謝謝你光臨我的教學部落格。 還沒看到你的問題,你就已經自救成功了。
*****
*****
*****
*****
您好 我找到問題 處理好了 成功了 感謝您 OFFSET(DATA!$F$1,SMALL(IF(DATA!$F$2:$F$2000=Ivy!$A$1,ROW(DATA!$F$2:$F$2000),9999),ROW(1:1))-1,COLUMN(A:A)-6)
謝謝你光臨我的教學部落格。 還沒看到你的問題,你就已經自救成功了。
複製儲存格A1,貼至儲存格A1:C17 你好~看不懂公式的回傳~公司需要做類似一樣報表
讚 太厲害ㄌ 大大神 每每遇到問題 來這就找到切身的答案
謝謝你光臨我的教學網站。