IP पते द्वारा एक्सेल कॉलम को सॉर्ट करना


17

मेरे पास एक काफी बड़ी (200 से अधिक पंक्ति) एक्सेल स्प्रेडशीट है जो मेरे नेटवर्क (यानी प्रिंटर, सर्वर, वर्कस्टेशन, नेटवर्क प्रोजेक्टर, आदि) में आइटमों को सूचीबद्ध करता है, और पहले कॉलम में से एक आईपी एड्रेस फ़ील्ड है, जो फॉर्म लेता है 192.168.x.y। जब मैं इसे छाँटने की कोशिश करता हूं तो मेरा मुद्दा यह है कि यह (उदाहरण के रूप में) से 192.168.0.85जाता है 192.168.0.9। क्या मैं देखना चाहेंगे यह पहले 3 ओकटेट के आधार पर छँटाई है, तो अंतिम ऑक्टेट तार्किक (यानी .1, .2, .3, आदि)। क्या यह संभव है? यदि हां, तो कैसे?

जवाबों:


19

जैसा कि टिप्पणियों में उल्लेख किया गया है, हेल्पर कॉलम यह संभव बना देगा। आपके पास बाद में शीट बनाए रखने के लिए दो विकल्प हैं:

  • स्प्लिट हेल्पर कॉलम में सभी नए आईपी जोड़ें।
  • नए परिवर्धन के लिए पाठ से कॉलम प्रक्रिया दोहराएं।

यहाँ प्रक्रिया है:

  1. अपना IP कॉलम चुनें और Data> पर क्लिक करेंText-to-Columns पाठ से स्तंभों

  2. Delimted विकल्प चुनें और Next पर क्लिक करें। Otherचेकबॉक्स की जाँच करें और एक अवधि दर्ज करें .। अगला पर क्लिक करें। चुनें ।  परिसीमन के रूप में

  3. सभी कॉलम रखें, उन्हें सामान्य रखें, Destinationअनुभाग संपादित करने के लिए रेंज आइकन पर क्लिक करें । परिवर्तन करना Dest १

  4. उन स्तंभों का चयन करें जहाँ आप नया पाठ प्रदर्शित करना चाहते हैं। Enter कुंजी मारो। परिवर्तन २

  5. सुनिश्चित करें कि आपकी सीमा चयनित है और Data> पर क्लिक करें Sort। सॉर्टिंग मापदंड दर्ज करें। प्रत्येक ओकटेट के लिए स्तर जोड़ते रहें। छँटाई

  6. यहां देखें अंतिम परिणाम: परिणाम


@nixda Yea, धीमी गति से प्रहार: पी काश मैं भी अपने तरीके से कुछ भी फेंक सकता था
कनाडाई ल्यूक

क्षमा करें, @nixda! क्या आपके लिए भी अपना उत्तर जोड़ना अवैध है?
ऋषिमहाराज

खैर, यह काम किया ... आप दोनों के लिए अतिरिक्त 15 प्रतिनिधि बिंदुओं पर लड़ने के लिए समय
कनाडाई ल्यूक

7

मुझे एहसास हुआ कि यह एक पुरानी पोस्ट है, लेकिन काम करने के समाधान प्रदान करने के हित में, मैं निम्नलिखित प्रस्तुत करता हूं।

बस इस फॉर्मूले को आसन्न सेल में रखें और सेल को इंगित करने के लिए अपने आईपी पते (इस उदाहरण में A1) को इंगित करें। यह 010.121.008.030 के समान परिणाम देगा, जो तब वर्णानुक्रम में (सही ढंग से) सॉर्ट किया जा सकता है। फिर नए कॉलम की चौड़ाई को शून्य और वॉइला पर सेट करें। एक कप कॉफी का आनंद लेने का समय।

=TEXT(MID(A1,1,FIND(".",A1)),"000")&"."&TEXT(MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-1-FIND(".",A1)),"000")&"."&TEXT(MID(A1,FIND(".",A1,FIND(".",A1)+1)+1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)-1-FIND(".",A1,FIND(".",A1)+1)),"000")&"."&TEXT(MID(A1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)+1,LEN(A1)),"000")

2
यह प्यार, परिपूर्ण। एक एकल सूत्र, एक "सहायक" एकल स्तंभ। धन्यवाद।
इयरल्स

सभी एक्सेल फ़ार्मुलों के साथ, आपको अपने सिस्टम की क्षेत्रीय सेटिंग्स के आधार पर ;अल्पविराम ( ,) के बजाय अर्धविराम ( ) का उपयोग करने की आवश्यकता हो सकती है ।
स्कॉट

1
आप …&"."&…संक्षिप्त अवधि ( ) को छोड़ सकते हैं और 010121008030 की तरह एक सादा, बारह अंकों की संख्या प्राप्त कर सकते हैं, जो सही ढंग से छंटनी भी करेगा (हालांकि सॉर्ट फ़ंक्शन आप पर एक कष्टप्रद संवाद बॉक्स फेंक सकता है)।
स्कॉट

1
Sub IPSplit()

HeaderRow = 1
ColimnName = "A"
BeginIPaddsressData = 2

Dim HeaderArray As Variant
HeaderArray = Array("IP oct 1", "IP oct 2", "IP oct 3", "IP oct 4")

Dim Octet() As String
Dim RangeSearch As Range, RangeFound As Range, LastCell As Range
Dim LastCellRowNumber As Long, LastCellColumnNumber As Long, RowNumber As Long

With ActiveSheet
Set LastCell = .Cells(HeaderRow, .Columns.Count).End(xlToLeft)
LastHeaderColumnNumber = LastCell.Column

Set RangeSearch = Range("1:1")
Set RangeFound = RangeSearch.Find(What:=HeaderArray(0), LookIn:=xlValues)

If RangeFound Is Nothing Then
RowNumber = 2
    If .Cells(RowNumber, .Columns.Count) <> vbNullString Then
        Set LastCell = .Cells(RowNumber, .Columns.Count)
        LastCellColumnNumber = LastCell.Column
    Else
        Set LastCell = .Cells(RowNumber, .Columns.Count).End(xlToLeft)
'Specifies the last column LastCellColumnNumber.

        LastCellColumnNumber = LastCell.Column
    End If

Range(Cells(HeaderRow, LastCellColumnNumber + 1), Cells(HeaderRow, LastCellColumnNumber + 4)).Value = HeaderArray
'Insert Header

Else
LastCellColumnNumber = RangeFound.Column - 1
End If

Set LastCell = .Cells(.Rows.Count, ColimnName).End(xlUp)
'Specifies the last cell number in the column ColimnName.

LastCellRowNumber = LastCell.Row   
End With

    For I = BeginIPaddsressData To LastCellRowNumber

    Octet = Split(Cells(I, ColimnName).Value, ".")
    For O = 0 To 3       
'cells populate the values of octets 1-4.
      If (UBound(Octet) - O) >= 0 Then      
         Cells(I, ColimnName).Offset(0, LastCellColumnNumber + O).Value = Octet(O)
      End If
    Next
Next
End Sub

मैं उस समय परीक्षण नहीं कर सकता (काम पर नहीं), लेकिन मैं कोशिश करूंगा कि जब मुझे काम मिले। ऐसा लगता है कि यह लंबी सूचियों के लिए अधिक अनुकूल होगा, खासकर अगर मैं सिर्फ इस मैक्रो को चलाने के लिए एक 'रिज़ॉर्ट' बटन जोड़ता हूं
कनाडाई ल्यूक

@CanadianLuke आप एक कॉलम BigIntIP भी बना सकते हैं। तब आप सभी आईपी पते और इसके विपरीत AZ को सॉर्ट कर सकते हैं।
STTR

यह महान काम करता है! मेरा एकमात्र अनुरोध यह होगा कि यह पुराने स्तंभों को पुन: उपयोग करता है क्योंकि प्रिंटर जोड़े जाते हैं
कनाडाई ल्यूक

@CanadianLuke यदि आप एक विषय "आईपी ऑक्ट 1" का नाम बदलते हैं, तो कॉलम दाईं ओर जुड़ जाएगा। और पुराना ही रहता है। यह है अगर आप एक कहानी की जरूरत है। उदाहरण के लिए, जब एक नेटवर्क से दूसरी रेंज में माइग्रेट हो रहा हो। शायद मैं इस सवाल को काफी समझ नहीं पाया ...
STTR

0

जॉन होमर के जवाब के अलावा, मैं यहां एक सूत्र प्रदान करता हूं जो कि ऐप्पल के नंबर एप्लिकेशन में भी काम करता है, क्योंकि TEXTफ़ंक्शन वहां मौजूद नहीं है। Google डॉक्स में भी परीक्षण किया गया।

=DEC2HEX(LEFT(B2,FIND(".",B2)-1),2)
&
DEC2HEX(MID(
    B2,
    FIND(".",B2)+1,
    FIND(
        ".",
        B2,
        FIND(".",B2)+1
    ) - FIND(".",B2) - 1
),2)
&
DEC2HEX(MID(
    B2,
    FIND(
        ".",
        B2,
        FIND(".",B2)+1
    ) + 1,
    FIND(
        ".",
        B2,
        FIND(
            ".",
            B2,
            FIND(".",B2)+1
        )+1
    ) - FIND(
        ".",
        B2,
        FIND(".",B2)+1
    ) - 1
),2)
&
DEC2HEX(RIGHT(
    B2,
    LEN(B2) - FIND(
        ".",
        B2,
        FIND(
            ".",
            B2,
            FIND(".",B2)+1
        )+1
    )
),2)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.