मेरे पास डेटा के कई कॉलम हैं जिन्हें मुझे मास्टर कॉलम के साथ संरेखित करने की आवश्यकता है।
निम्नलिखित एक उदाहरण है जिसे मैं प्राप्त करने की उम्मीद करता हूं, लेकिन एक मेज के साथ जिसमें अधिक बड़े तार और अधिक पंक्तियां हैं। प्रत्येक पंक्ति में डेटा अद्वितीय है, केवल एक बार दिखाई दे रहा है। इसलिए मैं सिर्फ उन बी, सी और डी के उन अद्वितीय मूल्यों को ए के साथ संरेखित करने का लक्ष्य रखता हूं जिनमें ए की पूरी सूची सम्मिलित है। इसके अलावा, प्रत्येक कॉलम के मानों को क्रमबद्ध किया जाता है, इसलिए जब तक वे कॉलम A के साथ संरेखित नहीं करते हैं, तब तक यह कोशिकाओं को टक्कर देने का मामला है, जो कि मैं अब तक मैन्युअल रूप से करता रहा हूं, लेकिन स्वचालित करना चाहता हूं:
मुझे एक्सेल के साथ सीमित अनुभव है, लेकिन सभी शोधों ने मुझे इस कोड को एक मॉड्यूल में उपयोग करने के लिए प्रेरित किया है। दुर्भाग्य से जब इसे चलाया जाता है, तो यह मेरे लिए बहुत कुछ नहीं करता है। दूसरे प्रयास में, अपनी क्षमताओं के सर्वश्रेष्ठ करने के लिए मैंने अपनी शीट में मूल्यों की श्रेणी के अनुरूप कोड को समायोजित करने का प्रयास किया, लेकिन मैं इसे चलाने के लिए नहीं कर सकता। इसलिए मुझे उम्मीद है कि अगर अधिक अनुभवी सदस्यों ने मुझे सूचित किया कि क्या मुझे वास्तव में कोड को अपना डेटा सूट करने की आवश्यकता है या यह सिर्फ काम करना चाहिए? किसी भी मदद के लिए धन्यवाद आप दे सकते हैं या बस पढ़ने के लिए समय ले रहे हैं!
Option Explicit
Sub AlignCustNbr()
' hiker95, 01/10/2011
' http://www.mrexcel.com/forum/showthread.php?t=520077
'
' The macro was modified from code by:
' Krishnakumar, 12/12/2010
' http://www.ozgrid.com/forum/showthread.php?t=148881
'
Dim ws As Worksheet
Dim LR As Long, a As Long
Dim CustNbr As Range
Application.ScreenUpdating = False
Set ws = Worksheets("Sheet1")
LR = ws.Range("E" & ws.Rows.Count).End(xlUp).Row
ws.Range("E3:G" & LR).Sort Key1:=ws.Range("E3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
ws.Range("A3:C" & LR).Sort Key1:=ws.Range("A3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Set CustNbr = ws.Range("A2:C" & LR)
a = 2
Do While CustNbr.Cells(a, 1) <> ""
If CustNbr.Cells(a, 1).Offset(, 4) <> "" Then
If CustNbr.Cells(a, 1) < CustNbr.Cells(a, 1).Offset(, 4) Then
CustNbr.Cells(a, 1).Offset(, 4).Resize(, 3).Insert -4121
ElseIf CustNbr.Cells(a, 1) > CustNbr.Cells(a, 1).Offset(, 4) Then
CustNbr.Cells(a, 1).Resize(, 3).Insert -4121
LR = LR + 1
Set CustNbr = ws.Range("A3:C" & LR)
End If
End If
a = a + 1
Loop
Application.ScreenUpdating = 1
End Sub!
VLOOKUP
सूत्र और परिणाम के लिए अतिरिक्त कॉलम (या एक अलग वर्कशीट) का उपयोग करें।
VLOOKUP
, जब इसका 4 वा पैरामीटर है FALSE
।)