iT邦幫忙

0

excel 是否有能"自動"刪除重複資料整行刪除的函式(單欄位也能)呢?

  • 分享至 

  • xImage

請問前輩 excel 或是google sheets
是否能刪除重複的函式(單欄位也能)呢? 或是該怎麼寫法可以達到同樣的目的呢?
我自己查了很多天了
真的找不到方法 最終來註冊詢問方法的
然後如果可以的話會需要的是函式
就是寫在欄位裡自動直接處理 而不是自己人工再按按鈕的

望前輩指點 謝謝!

例如 我之前找到的方法是=UNIQUE (array,[by_col],[exactly_once])
但是得到的是A的結果
如何得到B結果呢?

A是找到的方式是比對要兩行一模一樣才刪除
B是希望裡面只要有欄位相同的就能整條刪除

https://ithelp.ithome.com.tw/upload/images/20220816/20151460AAE5ke7Gct.png

補充:
需要的答案會是B
然後如果可以的話會需要的是函式
就是寫在欄位裡自動直接處理 而不是自己人工再按按鈕的

很感謝願意回答的各位!
超感謝你!!

所以是希望A還是B
不過剛剛測試
移除重複項功能可以達成
而且可以僅刪除選取範圍
kings919 iT邦新手 4 級 ‧ 2022-08-16 11:29:15 檢舉
很感謝你的回答 謝謝!

希望答案是B
然後需要的是函式
就是寫在欄位理自動處理 而不是自己人工再按按鈕的

很感謝你
kings919 iT邦新手 4 級 ‧ 2022-08-20 09:56:25 檢舉
高手 請問可以教教我嗎?
誠心請教 謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
ccenjor
iT邦大師 9 級 ‧ 2022-08-16 18:39:57
最佳解答

我是使用輔助欄(J欄)
J2:
=IF(OR(COUNTIF($F$2:$F$8,F2)>1,COUNTIF($G$2:$G$8,G2)>1,"Y",ROW())
向下複製到J3:J8。
https://ithelp.ithome.com.tw/upload/images/20220816/20109881IhRDFjViFE.png
點取「資料>移除重複項」圖示
https://ithelp.ithome.com.tw/upload/images/20220816/20109881wygMOlM3Mn.png

https://ithelp.ithome.com.tw/upload/images/20220816/20109881BcvgOwCCrJ.png
點取「確定」鈕。
https://ithelp.ithome.com.tw/upload/images/20220816/20109881pyVSsYPSBa.png
結果如下圖
https://ithelp.ithome.com.tw/upload/images/20220816/20109881zRs0FViut2.png

看更多先前的回應...收起先前的回應...
kings919 iT邦新手 4 級 ‧ 2022-08-17 08:59:45 檢舉

很感謝你的回答 謝謝!
那這樣差一個自動化而已
那請問點取「資料>移除重複項」圖示
這步驟有可能會有函式處理的嗎?
例如新增K欄位然後塞選嗎?

感謝

ccenjor iT邦大師 9 級 ‧ 2022-08-17 18:22:36 檢舉

製作一個按鈕,指定下面這個巨集。

Sub 巨集1()
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(COUNTIF(R2C1:R8C1,RC[-4])>1,COUNTIF(R2C2:R8C2,RC[-3])>1),""Y"",ROW())"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E8"), Type:=xlFillDefault
Range("E2").Select
ActiveSheet.Range("$A$1:$E$8").RemoveDuplicates Columns:=5, Header:=xlYes
End Sub
https://ithelp.ithome.com.tw/upload/images/20220817/20109881wokxgu6nXg.jpg
https://ithelp.ithome.com.tw/upload/images/20220817/20109881aYSnlG28l1.jpg

ccenjor iT邦大師 9 級 ‧ 2022-08-22 21:16:30 檢舉

另外一個做法不知是否合用。365,2021版本可用
E2:
=IF(OR(COUNTIF($A$2:$A$8,A2)>1,COUNTIF($B$2:$B$8,B2)>1),MAX(COUNTIF($A$2:$A2,A2),COUNTIF($B$2:B2,B2)),1)
再複製到E3:E8。
G2:=FILTER(A2:E8,E2:E8=1)
https://ithelp.ithome.com.tw/upload/images/20220822/20109881pFUFisbGNU.jpg
再將K欄隱藏。

kings919 iT邦新手 4 級 ‧ 2022-08-23 09:07:08 檢舉

什麼?你還幫我試?
哇~!你是怎麼想的 我太感謝你了
我是還在用2007版
我馬上試試看能不能用再跟你回報!

ccenjor iT邦大師 9 級 ‧ 2022-08-23 19:25:50 檢舉

2007可以用的公式。
G2:
=IFERROR(INDEX($A$1:$E$8,SUMPRODUCT(LARGE(($E$2:$E$8=1)*ROW($E$2:$E$8),COUNTIF($E$2:$E$8,1)+2-ROW())),COLUMN()-6),"")
再向右及向下複製到G2:J10
https://ithelp.ithome.com.tw/upload/images/20220823/20109881I8TN0WBj1Y.jpg

kings919 iT邦新手 4 級 ‧ 2022-08-24 09:47:40 檢舉

老大 我的2007不能用 但是steets是可以用的
那問題就解決了
真的超級超級超級超級感謝你的
你也太厲害了吧

我真的不敢相信社會上竟然還有你這種人
原本我想說發了幾天應該是沒人理了
結果你還自己研究出方法
現在這時代 沒好處應該沒人會理吧
畢竟這還不是你原本就會然後順便分享告知的

我真的很感謝你
更多的是你的熱心以及人品

跟你有的學了
謝謝

kings919 iT邦新手 4 級 ‧ 2022-08-24 09:48:46 檢舉

結果2007你也研究出來了...
佩服之情 無以言表

0
stephen3342
iT邦新手 2 級 ‧ 2022-08-16 10:50:09

https://ithelp.ithome.com.tw/upload/images/20220816/20098325BpGXvFrfLh.jpg

Sub 巨集1()
'
' 巨集1 巨集
ActiveSheet.Range("$A$1:$U$25").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub

Sub 巨集2()
'
' 巨集2 巨集
ActiveSheet.Range("$A$2:$U$25").RemoveDuplicates Columns:=Array(1, 2, 3), _
Header:=xlNo
End Sub

我要發表回答

立即登入回答