日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...

發布時間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位朋友,你們好,

今天和你們分享Excel中提取不重復值的幾種方法,著重介紹【5種】基礎操作方法另外附送一個VBA去重代碼,拿去就可以直接使用。


一、基礎操作方法

1、數據工具直接去重(見下圖)

數據工具去重

2、高級篩選(見下圖)

高級篩選去重

3、數據透視表(見下圖)

數據透視表方法去重

4、條件格式(見下圖)

條件格式去重

注:

①條件格式去重的公式:=AND($A1<>"",COUNTIF($A$1:$A1,$A1)>1)

②設置的單元格格式為【;;;】,這個表示什么意思,可以查看我之前的文章;

③這種方式,并不是真正意義的去重,只是將重復的內容不顯示出來;

點擊鏈接,帶你認識【;;;】

5、使用數據表的設計模式(見下圖)

數據表的設計模式數據去重


二、VBA方法(下面的代碼可直接拿去用)

VBA去重

VBA去重,最常用的方法就是數組+字典,本例使用的代碼如下:

Sub 數據去重() Dim Arr, Brr, a%, b%, Str1, Str2 Dim Dic As Object Set Dic = CreateObject("scripting.dictionary") Set Str1 = Application.InputBox("請選擇要去重的數據區域", "選擇數據", , , , , , 8) Arr = Range(Str1.Address) If Not IsArray(Arr) Then Exit Sub '如果不存在數據源選項,則arr非數組,那么退出程序 For a = 1 To UBound(Arr, 1) For b = 1 To UBound(Arr, 2) If Arr(a, b) <> "" Then Dic(Arr(a, b)) = "" '單元格非空,則裝入字典 Next Next Brr = Dic.keys Set Str2 = Application.InputBox("請確定數據存放的單元格", "選擇數據存放的單元格", , , , , , 8) Range(Str2.Address).Resize(Dic.Count, 1) = Application.Transpose(Brr) Set Dic = Nothing '釋放字典內存End Sub

此代碼做了靈活設置處理,支持自己選擇區域,而并非只能對固定區域內容去重,有需要的朋友可以直接拿去使用。


三、函數公式去重

1、公式組合套路

用公式對數據去重,效率不是很高,且遇到數據量很大的時候,文件的運行會卡頓。但是既然說到去重,還是應該介紹下公式去重的套路(效果見下圖)。

公式去重

下面是去重公式的套路組合,拿去就可以直接套用:

=INDIRECT("A"&SMALL(IF(MATCH(數據區域,數據區域,)=ROW($1:$16),ROW($1:$16),4^6),ROW(A1)))&""

套路解析:

①【A】表示數據所在的列;

②【數據區域】:需要去重的數據,需要絕對引用;

③【ROW($1:$16)】:這里的16表示數據區域的高度,要根據實際情況調整;

④公式是數組公式,需要按組合鍵【Ctrl+Shift+Enter】結束。

當然,此處也可以用OFFSET函數或者INDEX函數,根據自己的情況合理選擇即可。

2、高版本專有函數

如果你是Office 365的用戶,還有一個更方便的函數【UNIQUE 函數

UNIQUE 函數去重

3、自定義函數

如果是低版本的用戶,不想用復雜的套路組合,又要實現不重復數據的實時更新,就只能使用自定義函數了。效果見下圖:

自定義函數去重

自定義函數的代碼如下:

Function QuChong(Rng As Range, Optional i As Integer, Optional Str As String = ",")'函數作用:去除重復項'函數名:QuChong。此函數有三個參數:Rng、i、Str'Rng:需要去重的數據區域'i(可忽略):去重選項,如果i=0,則去重后合并;如果i>0,則依次提取出內容'Str(可忽略):用于當i=0時,合并用的連接符。Dim Arr,Brr, a%, b%Dim DicSet Dic = CreateObject("scripting.dictionary")If Rng.Count = 0 Then QuChong = ""Arr = RngFor a = 1 To UBound(Arr, 1) For b = 1 To UBound(Arr, 2) If Arr(a, b) <> "" Then Dic(Arr(a, b)) = "" '單元格非空,則裝入字典 End If NextNextBrr = Dic.keysIf i = 0 Then QuChong = VBA.Join(Dic.keys, Str)ElseIf i > 0 Then If i <= Dic.Count Then QuChong = Brr(i - 1) Else QuChong = "" End IfElse QuChong = "參數錯誤"End IfEnd Function

函數作用:去除重復項;

函數名:QuChong。此函數有三個參數:Rng、i、Str;

Rng:需要去重的數據區域;

i(可忽略,忽略是默認為0):去重選項,如果i=0,則去重后合并;如果i>0,則依次提取出不重復內容;

Str(可忽略,忽略時默認為逗號):用于當i=0時,合并用的連接符。


我是上班下班,因為愛好辦公軟件、喜歡分享。所以來到這里將我的學習心得和踩過的一些坑,和大家聊聊,希望大家學習我成功的經驗,避開我踩過的坑。我和你們一起進步。

好了,今天就聊到這里,感謝各位朋友的關注和支持。

如果你喜歡我分享的內容,請點個贊支持下;

如果你覺得我分享的內容對你有幫助,可以關注我;

如果要看我以前分享過的好玩的內容,大家可以去我的主頁查看歷史文章。

總結

以上是生活随笔為你收集整理的vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。