इस लेख में, मैं आपको दिखाऊंगा कि आप कैसे ड्रॉप डाउन सूची से डुप्लिकेट मान निकाल सकते हैं VBA . की सहायता से एक्सेल में वर्कशीट की और केवल अद्वितीय मान रखें। आप कम से कम एक बार और बिल्कुल एक बार प्रकट होने वाले अद्वितीय मानों को निकालना सीखेंगे।
एक्सेल वीबीए (त्वरित दृश्य) के साथ ड्रॉप डाउन सूची में अद्वितीय मूल्य
Sub Drop_Down_List_Unique_Values_At_Least_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
Excel VBA के साथ ड्रॉप डाउन सूची में अद्वितीय मान कैसे रखें
यहां हमारे पास सेल B3 . में एक ड्रॉप-डाउन सूची है एक एक्सेल वर्कशीट जिसमें कुछ देशों के नाम शामिल हैं।
लेकिन जैसा कि आप देख सकते हैं, सूची में कुछ नाम दोहराए गए हैं। जैसे जर्मनी को तीन बार दोहराया गया है, और इटली को दो बार दोहराया गया है।
आज हमारा उद्देश्य ड्रॉप-डाउन सूची से डुप्लीकेट मानों को हटाना और केवल अनन्य मानों को रखना है।
1. कम से कम एक बार दिखाई देने वाली ड्रॉप डाउन सूची में अद्वितीय मूल्यों को रखने के लिए मैक्रो का विकास करना
सबसे पहले, हम एक मैक्रो . विकसित करेंगे ड्रॉप-डाउन सूची में कम से कम एक बार दिखाई देने वाले अद्वितीय मान रखने के लिए।
उदाहरण के लिए, ऊपर उल्लिखित सूची के लिए, मैक्रो . का आउटपुट होगा जर्मनी, इटली, फ़्रांस, इंग्लैंड ।
VBA इस उद्देश्य के लिए कोड होगा:
⧭ वीबीए कोड:
Sub Drop_Down_List_Unique_Values_At_Least_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧭ आउटपुट:
कोड चलाएँ। यह सेल B3 . की ड्रॉप-डाउन सूची से डुप्लिकेट मान निकाल देगा सक्रिय कार्यपत्रक का और केवल वही मान रखें जो कम से कम एक बार प्रकट हों।
⧭ नोट:
कोड चलाने से पहले ड्रॉप-डाउन सूची के साथ वर्कशीट को सक्रिय करना न भूलें। साथ ही, कोड चलाने से पहले अपनी आवश्यकता के अनुसार सूची स्थान का सेल संदर्भ बदलें।
और पढ़ें: एक्सेल में अद्वितीय मानों के साथ ड्रॉप डाउन सूची कैसे बनाएं (4 तरीके)
2. एक ड्रॉप डाउन सूची में अद्वितीय मान रखने के लिए मैक्रो बनाना जो बिल्कुल एक बार दिखाई देता है
इस बार, हम एक मैक्रो . विकसित करेंगे ड्रॉप-डाउन सूची में बिल्कुल एक बार दिखाई देने वाले अद्वितीय मान रखने के लिए।
उदाहरण के लिए, ऊपर उल्लिखित सूची के लिए, मैक्रो . का आउटपुट होगा फ्रांस, इंग्लैंड ।
VBA इस उद्देश्य के लिए कोड होगा:
⧭ वीबीए कोड:
Sub Drop_Down_List_Unique_Values_Exactly_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Unique_Data = ""
Range(List_Location).Validation.Delete
Count = 0
For i = LBound(Data) To UBound(Data)
For j = LBound(Data) To UBound(Data)
If j <> i And Data(i) = Data(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧭ आउटपुट:
कोड चलाएँ। यह उन मानों को हटा देगा जिनमें डुप्लिकेट हैं सेल की ड्रॉप-डाउन सूची से B3 सक्रिय कार्यपत्रक का और केवल वही मान रखें जो ठीक एक बार दिखाई देते हैं।
⧭ नोट:
कोड चलाने से पहले फिर से ड्रॉप-डाउन सूची के साथ वर्कशीट को सक्रिय करना न भूलें। साथ ही, कोड चलाने से पहले अपनी आवश्यकता के अनुसार सूची स्थान का सेल संदर्भ बदलें।
संबंधित सामग्री: एक्सेल में ड्रॉप डाउन सूची से एकाधिक चयन कैसे करें (3 तरीके)
समान रीडिंग:
- Excel में चयन के आधार पर डेटा निकालने के लिए ड्रॉप डाउन फ़िल्टर बनाना
- रंग के साथ एक्सेल ड्रॉप डाउन सूची कैसे बनाएं (2 तरीके)
- एक्सेल ड्रॉप डाउन सूची काम नहीं कर रही (8 मुद्दे और समाधान)
- एक्सेल में ऑटो अपडेट ड्रॉप डाउन सूची (3 तरीके)
- VBA एक्सेल में ड्रॉप डाउन सूची से मूल्य का चयन करने के लिए (2 तरीके)
3. ड्रॉप डाउन सूची में अद्वितीय मूल्यों को रखने के लिए एक उपयोगकर्ता प्रपत्र विकसित करना
अंत में, हम एक उपयोगकर्ता प्रपत्र . विकसित करेंगे एक ड्रॉप-डाउन सूची से डुप्लिकेट मानों को निकालने के लिए और VBA . के साथ केवल अनन्य मान रखने के लिए ।
⧪ चरण 1:उपयोगकर्ता प्रपत्र खोलना
सम्मिलित करें> UserForm . पर जाएं VBA . में विकल्प एक नया UserForm open खोलने के लिए संपादक . एक नया उपयोगकर्ता प्रपत्र UserForm1 . कहा जाता है खोला जाएगा।
⧪ चरण 2:टूल को UserForm पर खींचना
उपयोगकर्ता प्रपत्र . के अलावा , आपको टूलबॉक्स मिलेगा . अपने कर्सर को टूलबॉक्स . पर ले जाएं और 3 लेबल drag खींचें और 2 सूची बॉक्स (लेबल1 . के तहत और लेबल3 ) और 1 टेक्स्टबॉक्स (लेबल2 . के तहत ) एक तरह से चित्र में दिखाया गया है।
अंत में, एक कमांडबटन . खींचें निचले दाएं कोने में।
⧪ चरण 3:ListBox1 के लिए कोड लिखना
ListBox1 . पर डबल क्लिक करें . एक निजी उपप्रक्रिया ListBox1_Click . कहा जाता है खुलेगा। वहां निम्न कोड दर्ज करें।
Private Sub ListBox1_Click()
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.Selected(i) = True Then
Worksheets(UserForm1.ListBox1.List(i)).Activate
Exit For
End If
Next i
End Sub
⧪ चरण 4:टेक्स्टबॉक्स1 के लिए कोड लिखना
फिर TextBox1 . पर डबल क्लिक करें . एक और निजी उपप्रक्रिया TextBox1_Change called कहा जाता है खुलेगा। वहां निम्न कोड दर्ज करें।
Private Sub TextBox1_Change()
On Error GoTo TB1:
ActiveSheet.Range(UserForm1.TextBox1.Text).Select
Exit Sub
TB1:
x = 21
End Sub
⧪ चरण 6:CommandButton1 के लिए कोड लिखना
अंत में, CommandButton1 . पर डबल क्लिक करें . एक निजी उपप्रक्रिया CommandButton1_Click called कहा जाता है खुलेगा। वहां निम्न कोड दर्ज करें।
Private Sub CommandButton1_Click()
List_Location = UserForm1.TextBox1.Text
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
If UserForm1.ListBox2.Selected(0) = True Then
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
ElseIf UserForm1.ListBox2.Selected(1) = True Then
For i = LBound(Data) To UBound(Data)
For j = LBound(Data) To UBound(Data)
If j <> i And Data(i) = Data(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Else
MsgBox "Select Either At Least Once or Exactly Once.", vbExclamation
End If
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧪ चरण 7:उपयोगकर्ता प्रपत्र चलाने के लिए कोड लिखना
एक नया मॉड्यूल Insert डालें VBA टूलबार . से और वहां निम्न कोड डालें।
Sub Run_UserForm()
UserForm1.Caption = "Keep Unique Values in Drop-Down List"
UserForm1.Label1.Caption = "Worksheet: "
UserForm1.Label2.Caption = "List Location: "
UserForm1.Label3.Caption = "Keep Unique Values that Appear: "
UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox1.ListStyle = fmListStyleOption
For i = 1 To Sheets.Count
UserForm1.ListBox1.AddItem Sheets(i).Name
Next i
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.List(i) = ActiveSheet.Name Then
UserForm1.ListBox1.Selected(i) = True
Exit For
End If
Next i
UserForm1.ListBox2.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox2.ListStyle = fmListStyleOption
UserForm1.ListBox2.AddItem "At Least Once"
UserForm1.ListBox2.AddItem "Exactly Once"
UserForm1.CommandButton1.Caption = "OK"
Load UserForm1
UserForm1.Show
End Sub
⧪ चरण 8:UserForm (अंतिम आउटपुट) चलाना
आपका उपयोगकर्ता प्रपत्र अब उपयोग के लिए तैयार है। मैक्रोचलाएं Run_UserForm . कहा जाता है ।
उपयोगकर्ता प्रपत्र कार्यपत्रक में लोड किया जाएगा।
उस वर्कशीट का चयन करें जिस पर ड्रॉप-डाउन सूची है। यह रहा पत्रक3 ।
फिर वर्कशीट पर सूची के स्थान का सेल संदर्भ दर्ज करें। यह रहा B3 ।
अंत में, या तो कम से कम एक बार . चुनें या बिल्कुल एक बार। यहां मैंने कम से कम एक बार . चुना है ।
तो मेरा उपयोगकर्ता प्रपत्र ऐसा दिखता है:
फिर ठीक . क्लिक करें . आपको अपने चुने हुए मानदंड के अनुसार इनपुट स्थान की ड्रॉप-डाउन सूची से डुप्लिकेट मान हटा दिए जाएंगे।
और पढ़ें: एक्सेल में फ़ॉर्मूला के आधार पर ड्रॉप-डाउन सूची कैसे बनाएं (4 तरीके)
याद रखने योग्य बातें
- इस लेख में, मैंने केवल एक ड्रॉप-डाउन सूची से डुप्लिकेट मानों को हटाने पर ध्यान केंद्रित किया है। यदि आप सीखना चाहते हैं कि ड्रॉप-डाउन सूची कैसे बनाएं, या डुप्लिकेट सूची में मानों को कैसे क्रमबद्ध करें, तो आप इस लेख को पढ़ सकते हैं।
निष्कर्ष
तो, ड्रॉप-डाउन सूची से डुप्लिकेट मानों को निकालने के ये तरीके हैं और एक्सेल VBA की सहायता से केवल अनन्य मानों को पीछे रखें . क्या आपका कोई प्रश्न है? बेझिझक हमसे पूछें। और हमारी साइट पर जाना न भूलें ExcelDemy अधिक पोस्ट और अपडेट के लिए।
संबंधित लेख
- सेल वैल्यू को एक्सेल में ड्रॉप डाउन लिस्ट से कैसे लिंक करें (5 तरीके)
- एक्सेल में सशर्त ड्रॉप डाउन सूची (बनाएं, क्रमबद्ध करें और उपयोग करें)
- एक्सेल में डायनामिक डिपेंडेंट ड्रॉप डाउन लिस्ट कैसे बनाएं
- Excel में ड्रॉप-डाउन सूची बनाने के लिए IF स्टेटमेंट का उपयोग कैसे करें
- एक्सेल में ड्रॉप डाउन सूची के साथ VLOOKUP