請問各位前輩
我想用 Excel 做一個薪資表可以自動幫我把業務個人業績的部份篩選出來
列提如下:
案名業務員姓名業績
A小明 1000
B小王 2000
C小明 3000
D小王 4000
E小陳 2000
F小明 3500
G小陳 4500
在不用篩選的方式下,是否可以產生下列的答案
業務員姓名案名業績
小明 A 1000
小明 C 3000
小明 F3500
也就是說,上面第一個表是輸入的總表,我將他依人名拆到每個不同人名的表中
請各位前輩告知,謝謝
提供 10 點點數,慰勞前輩的辛苦
2006-01-09 09:02:12 · 4 個解答 · 發問者 鷹 1 in 電腦與網際網路 ➔ 軟體
哇! 用VBA二三個字就解決了~~ 真是太佩服[牧童叔]的功力了!!那我提供一個用[函數]做的,供你參考~~[案名不會相同]的條件下,找出[案名],其它二項就可用VLOOKUP代出來了.
圖片參考:http://dannis888.myweb.hinet.net/excel/5.JPG
假設"案名"在A1(其它以此類推),則工作表"小明"之A2=IF(ISERROR(SMALL(IF(總表!$B$2:$B$8="小明",CODE(總表!$A$2:$A$8)),ROW()-1)),"",CHAR(SMALL(IF(總表!$B$2:$B$8="小明",CODE(總表!$A$2:$A$8)),ROW()-1)))此為[陣列公式],請按 Shift+Ctrl+EnterB2=IF(ISNA(VLOOKUP(A2,總表!$A$2:$C$8,2,0)),"",VLOOKUP(A2,總表!$A$2:$C$8,2,0))C2=IF(ISNA(VLOOKUP(A2,總表!$A$2:$C$8,3,0)),"",VLOOKUP(A2,總表!$A$2:$C$8,3,0))<解說>僅對A2主體部份說明A2主體部份:CHAR(SMALL(IF(總表!$B$2:$B$8="小明",CODE(總表!$A$2:$A$8)),ROW()-1))IF(總表!$B$2:$B$8="小明",CODE(總表!$A$2:$A$8))這是一個陣列公式,意思是假如工作表[總表]中,在$B$2:$B$8的範圍內,儲存格內容為[小明],則回傳相對應$A$2:$A$8中,儲存格內容的[字元集]...CODE函數CODE("A")=65,CODE("B")=66.....依此類推利用SMALL函數及其引數 ROW()-1ROW(A2)-1=1,ROW(A3)-1=2.....依此類推,利用向下複製時列號的變化,找出最小,第二小....利用CHAR函數,傳回所對應的英文字母.上傳一個做好的檔案供你參考http://dannis888.myweb.hinet.net/excel/Book5.xls<另解>為考慮[案名]A,B,....只是[出題者]使用[代號]來發問,並用考慮其適用範圍,將A2更改如下=IF(ISERROR(SMALL(IF(總表!$B$2:$B$8="小明",ROW(總表!$B$2:$B$8)),ROW()-1)),"",INDIRECT("總表!R"&SMALL(IF(總表!$B$2:$B$8="小明",ROW(總表!$B$2:$B$8)),ROW()-1)&"C1",0))此為[陣列公式],請按 Shift+Ctrl+Enter<解說>INDIRECT函數內是以R1C1表示法處理
2006-01-10 15:07:43 補充:
哦~了解!!! 謝謝!牧童叔教導!
2006-01-10 08:26:32 · answer #1 · answered by 小志 4 · 0⤊ 0⤋
既然篩選可以解決,為何不用呢?
2006-01-10 09:56:14 補充:
你錄製一個新巨集,然後把程式碼改成下列內容Sub Macro1()'' Macro1 Macro' Johnny Wang 在 2006/1/10 錄製的巨集'' 快速鍵: Ctrl+a' Selection.AutoFilter Selection.AutoFilter Field:=ActiveCell.Column, Criteria1:=ActiveCell.ValueEnd Sub接著將游標放在你要篩選的儲存格上 (例如小明),然後執行巨集即可 (例如按 Ctrl + a)PS : 巨集相關的操作問題,可參考我以前的回答To 小志其實很簡單,我先錄一個自動篩選的巨集,結果如下 Selection.AutoFilter Field:=2, Criteria1:="小明"然後再把 Field 與 Criterial 兩個參數換成目前儲存格的內容而己
2006-01-23 10:07:04 補充:
麻煩你把檔案放到
http://tw.club.yahoo.com/clubs/Trump/
或
http://tw.club.yahoo.com/clubs/warehouse-of-Elvin/
很多人會願意幫你回答
因你接受回信的選項沒有打開,所以只好寫在這裡了,希望你有看到
2006-01-10 04:56:14 · answer #2 · answered by ? 7 · 0⤊ 0⤋
案名不會相同,用巨集做也是可以,但是因為我對巨集不太熟悉,那位大大可以提供用巨集的作法
2006-01-09 19:40:43 補充:
因為使用者對電腦有電遲鈍,我希望他輸入完總表就可以得到答案,但是功力不足所以.....
2006-01-11 08:49:39 補充:
謝謝前輩的指導,目前努力吸收中,晚點回來给最佳解答
2006-01-09 10:18:51 · answer #3 · answered by 鷹 1 · 0⤊ 0⤋
有個問題:
每次的案名都會相同嗎?
若不會相同時,這部分仍需手動輸入。
2006-01-09 14:23:33 補充:
給個陣列公式的參考:
=SUM((總表!$B$2:$B$8=A2)*(總表!$A$2:$A$8=B2)*(總表!$C$2:$C$8))
2006-01-09 14:28:02 補充:
忘了,上面那個陣列公式輸入完成要按[Ctrl]+[Shift]+[Enter]。
但你的case好像用巨集會比較好一點吧?(以前幫別人做過類似的東西)
2006-01-09 23:07:21 補充:
[牧童叔],我當初就是為了使用者的電腦障礙,才作了個很笨的巨集,只是用來做篩選,不過當初那個還要產生不同的檔案。呵呵!
[鷹],你先試著自己用錄製的方法去做個巨集看看,這樣會比較好入門。(記得一定要先作備份)
2006-01-09 09:13:16 · answer #4 · answered by Elvin 6 · 0⤊ 0⤋