目次
Excelでは IPアドレス をテキストとして使用します。 ソート&フィルター のツールでは、IPアドレスを正しくソートできません。 この記事では、ExcelでIPアドレスをソートする6種類の方法を紹介します。 次の図は、ほとんどの方法が動作することを説明しています。
練習用ワークブックをダウンロードする
練習用ワークブックは、下のダウンロードボタンからダウンロードできます。
IPアドレスの並べ替え.xlsmExcelでIPアドレスを並べ替える6つの方法
今回は、ExcelでIPアドレスを簡単にソートする6つの方法を紹介します。 以下のデータセットを使って、これらの方法を紹介します。 では、さっそくやってみましょう。
1.Excelの数式を使ったIPアドレスの並べ替え
この方法では、Excelで正しくソートできるように、数式を使ってIPアドレスを変換します。 これを行うには、次の手順に従います。
ステップ1. まず、セルに次の数式を入力します。 C5 :
=TEXT(LEFT(B5,FIND(".",B5,1)-1),"000") & "." & TEXT(MID(B5,FIND( ".",B5,1)+1,FIND(".",B5,FIND(".",B5,1)+1)-FIND(".",B5,1)-1),"000") & "." & TEXT(MID(B5,FIND(".",B5,FIND(".",B5,1)+1)+1,FIND(".",B5, FIND(".",B5,FIND(".",B5,1)+1)+1)-FIND(".",B5,FIND(".",B5,1)+1)-1), "000") & "." & TEXT(RIGHT(B5,LEN(B5)-FIND(".",B5,FIND(".",B5,FIND( ".",B5,1)+1)+1)),"000"
) この数式は、セル内のドット(.)を検出します。 B5 とし、各オクテット番号のいずれかが3桁未満の場合は0/ゼロで埋め合わせる。
次に、この数式を以下のセルにコピーします。 フィルハンドル ツールで、すべてのIPアドレスの先頭をゼロで埋めます。
ステップ2. その後、変換されたIPアドレスをすべて選択します。
ステップ3. そして ソート&フィルター のツールを使用します。 ホーム 選択したセルを右クリックし、そこから並べ替えることもできます。
ステップ4. 以下のようにソートしながら選択範囲を広げます。
これで、変換後のIPと変換前のIPの両方が以下のようにソートされます。
代替式。
ステップ5. 次の式を使っても同じ結果になります。
=(VALUE(LEFT(B5,FIND(".",B5)-1))*10^9)+(VALUE(LEFT(RIGHT(B5,LEN(B5)-FIND(".",B5)),FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))-1))*10^6)+VALUE(LEFT(RIGHT(RIGHT(B5,LEN(B5)-FIND(".",B5)),LEN(RIGHT(B5,LEN(B5)-FIND(".",B5)))-FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))),FIND(".",RIGHT(RIGHT(B5,LEN(B5)-FIND(".",B5)),LEN(RIGHT(B5,LEN(B5)-FIND(".",B5)))-FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))))-1))*10^3+VALUE(RIGHT(RIGHT(RIGHT(B5,LEN(B5)-FIND(".",B5)),LEN(RIGHT(B5,LEN(B5)-FIND(".",B5)))-FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))),LEN(RIGHT(RIGHT(B5,LEN(B5)-FIND(".",B5)),LEN(RIGHT(B5,LEN(B5)-FIND(".",B5)))-FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))))-FIND(".",RIGHT(RIGHT(B5,LEN(B5)-FIND(".",B5)),LEN(RIGHT(B5,LEN(B5)-FIND(".",B5)))-FIND(".",RIGHT(B5,LEN(B5)-FIND(".",B5)))))))
しかし、この式ではIPを10進数に変換しています。 先ほどのソートと同じように、IPをソートすることができます。
続きを読む Excelでデータを並べ替え、フィルタリングする方法(完全ガイドブック)
2.IPアドレスを文字列で並べ替えるウィザード
IPアドレスをソートする別の方法として テキストをカラムに ウィザードを実行できるようにするために、次の手順を実行します。
ステップ1. まず、以下のようにすべてのIPを選択します。 右側に隣接する4つのセルを空けておきます。
ステップ2. 次に テキストをカラムに のアイコンが表示されます。 データ タブをクリックすると、次の図のようになります。
ステップ3. その後、データ型にマークを付けます。 区切られた をクリックし 次のページ .
ステップ4. では、確認してみましょう。 その他 タブをクリックし、テキストボックスにドット(.)を入力してください。 次のページ ボタンをクリックします。
ステップ5. その後、データ形式を一般的なものにした上で、以下のように保存先を選択します。 $C$5 このためには、宛先フィールドボックスの右側にある小さな上向き矢印をクリックします。 次に、セル C5 そして、最後にヒットしたのが 仕上がり ボタンをクリックします。
しかし、隣接するセルが空でない場合は、クリックで置き換える必要があります。 よっしゃー .
ステップ6. これでIPは4オクテットに分割されました。 このように全データ範囲を選択しておいてください。
ステップ7. ここで、カスタムソートを実行するために ソート&フィルター ツールを使用します。
ステップ8. まずC列でソートし、新しいレベルを追加してそれぞれD列、E列、F列でソートします。 ここで よっしゃー ボタンを押すと、IPがソートされます。
必要に応じて、オクテットを隠したり、削除したりすることができます。
関連コンテンツ エクセルでデータを2列で並べ替える方法(5つの簡単な方法)
3.IPアドレスをExcelの表で整理する
Excelの表では、別の計算式でIPアドレスをソートすることができます。 この方法を適用するには、次の手順に従います。
ステップ1. まず エクセル表 を使用して、以下のようなデータセットを作成しました。
ステップ2. IP変換」セル上の任意の場所をクリックします。 次に、「IP変換」セルをクリックします。 は、次の式を適用します。 このうち :
=IF(0,"#####FIRSTOCTET#####","")&TEXT(LEFT([@IP],FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),1))-1),"000")&"."&IF(0,"#####SECONDOCTET#####","")&TEXT(MID([@IP],FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),1))+1,FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),2))-FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),1))),"000")&"."&IF(0,"#####THIRDOCTET#####","")&TEXT(MID([@IP],FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),2))+1,FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),3))-FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),2))),"000")&"."&IF(0,"#####FOURTHOCTET#####","")&TEXT(MID([@IP],FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),3))+1,IF(ISERROR(FIND("/",[@IP])),LEN([@IP]),FIND("/",[@IP])-1)-FIND(CHAR(134),SUBSTITUTE([@IP],".",CHAR(134),3))),"000")&IF(0,"#####CIDR#####","")&IF(ISERROR(FIND("/",[@IP])),"",RIGHT([@IP],LEN([@IP])-FIND("/",[@IP])+1))
これで、先ほど行ったように、すべてのIPがゼロで埋められます。
ステップ3. ここで、変換されたIPをこれまでの方法と同様に並べ替えます。
最後に、IPアドレスの並べ替えを行います。
関連コンテンツ エクセルでドロップダウンリストを並べ替える方法(5つの簡単な方法)
類似の読み物。
- Excelでのランダムソート(数式+VBA)
- エクセルで色で並べ替える方法(4つの基準)
- Excelで2つの列を一致させる(完全一致と部分一致の両方)。
- エクセルに並べ替えボタンを追加する方法(7つの方法)
- エクセルで昇順に並べ替える(3つの簡単な方法)
4.Excelでフラッシュフィルを使ったIPアドレスの並べ替え
データセットの最初の3オクテットが同じであれば、Excelのフラッシュフィルを使用してソートすることができます。 おそらくこれがExcelでIPアドレスをソートする最も迅速で簡単な方法です。 この方法の手順は以下のとおりです。
ステップ1. セル内の最初のIPの最後のオクテット桁を入力する。 C5 ここで、2つ目のIPに対して同じことをすると、次のようにグレー色のリストが表示されます。 これらは、IPの最後のオクテットです。
ステップ2. 現在ヒット中 入力 をクリックすると、リストが表示されます。 リスト全体を選択して、ソートしてください。
ソート中に選択範囲を拡大することを忘れないでください。
これで、IPアドレスは以下のようにソートされます。
関連コンテンツ エクセルで並べ替えを元に戻す方法(3つの方法)
5.ユーザー定義関数(UDF)を用いたIPアドレスの並べ替え
IPアドレスのソートには、もう一つ驚くべき方法があります。 ユーザー定義関数(UDF) そのためには、以下の手順に従ってください。
ステップ1. はじめに Microsoft Visual Basic for Applications(VBA) ウィンドウのキーボードショートカットは ALT+F11 をWindowsで、そして Opt+F11 から行うこともできます。 デベロッパー タブに表示されます。 表示されない場合は、次のようにします。 ファイル >> オプション >> カスタマイズリボン >> メインタブ のチェックボックスにチェックを入れてください。 デベロッパー を押して よっしゃー .
ステップ2. より インサート タブで、以下を選択します。 モジュール .
ステップ3. ここで、以下のコードをコピーして、空欄に貼り付けてください。
Function SortIP(IP As String) As String Dim FirstDot As Integer Dim SecondDot As Integer Dim ThirdDot As Integer Dim FirstOctet As String Dim SecondOctet As String Dim ThirdOctet As String FirstDot = InStr(1, IP, ".", vbTextCompare) SecondDot = InStr(FirstDot + 1, IP, ".", vbTextCompare) ThirdDot = InStr(SecondDot + 1, IP, ".", vbTextCompare) FirstOctet = Left(IP.) As String Dim Fourth Octet As String Fixed (IP, ".", vbTextCompare) FirstDot + 2, (IP) As String Dim ThirdOctet = FirstDot (IP) As String Dim FirstDet As Stling (IP) As Stling (文字数, 文字数, 文字数, 文字数, 文字数) FirstDet + 2 (文字数)FirstDot - 1) SecondOctet = Mid(IP, FirstDot + 1, SecondDot - FirstDot - 1) ThirdOctet = Mid(IP, SecondDot + 1, ThirdDot - SecondDot - 1) FourthOctet = Mid(IP, ThirdDot + 1, Len(IP)) SortIP = Right("000" & FirstOctet, 3) & "." SortIP = SortIP & Right("000" & SecondOctet, 3) & "." SortIP = SortIP & Right("000" & ThirdOctet, 3) & "." SortIP = SortIP & Right("000" &, 3) &."& FourthOctet, 3) End Function
ステップ4. から閉じてください。 ファイル タブをクリックし、Excelに戻ります。
ステップ5. ここで、セルに次の数式を入力します。 C5 :
=SortIP(B5)
ステップ6. IPがゼロで埋め尽くされているのがわかります。 その後、数式を下のセルにコピーします。 変換されたIPを、先の方法と同じ手順で並べ替えます。
最後に、すべてのIPが以下のようにソートされます。
続きを読む エクセルVBAでソート関数を使う方法(8つの適切な例)
6.ExcelのVBAでIPアドレスを並べる
を使用してIPをソートする方法もあります。 ブイビーエー この方法は、次のような手順で行われます。
ステップ1. IPアドレスを含むセルを選択します。
ステップ2. 次に ブイビーエー ウィンドウを開き、先ほどの方法と同じようにモジュールを挿入します。 次に、次のコードをコピーして、空白のウィンドウに貼り付けます。
Sub ConvertIP() Dim xReg As New RegExp Dim xMatchs As MatchCollection Dim xMatch As Match Dim xRng As Range Dim xCellRange As Range Dim I As Long Dim xConv() As String On Error Resume Next Set xRng = Application.InputBox("Select cell/Range:", "Convert IP Address", Selection.Address, , , 8) If xRng Is Nothing Then Exit Sub With xReg .Global = True .Pattern = "\d{1,3}.+d{1,3}.+d{1,3}.+THINKS".For Each xCellRange In xRng Set xMatchs = .Execute(xCellRange.Value) If xMatchs.Count = 0 Then GoTo xPause For Each xMatch In xMatchs xConv = Split(xMatch, ".") For I = 0 To UBound(xConv) xConv(I) = Right("000" & xConv(I), 3) If I UBound(xConv) Then xConv(I) = xConv(I) & "." End If Next 次の xCellRange.Value = Join(xConv, "") xPause: Next End With End Sub
ステップ3. では、その中から ツール タブで、以下を選択します。 参考文献 新しいダイアログボックスが表示されます。
ステップ4. 下にスクロールして確認 Microsoft VBScript Regular Expressions 5.5 の一覧から 利用可能なリファレンス そして、ヒット よっしゃー .
ステップ5. を押してください。 F5 セル範囲を入力するか、Excelに切り替えてセル範囲全体を選択します。 でセル範囲全体を選択しました。 ステップ1 を入力すると、Excelは自動的にそれを入力として受け取ります。 最後に よっしゃー ボタンをクリックします。
注 最小化しないでください。 ブイビーエー を押しているときに、ウィンドウ F5 .
IPアドレスがゼロで埋め尽くされているのがわかります。 これで、以前と同じように簡単に並べ替えることができます。
関連コンテンツ ExcelのVBAでListBoxをソートする方法(完全ガイド)
覚えておきたいこと
- 方法4は、IPアドレスの4オクテットのうち、3オクテットが同じ数字の場合のみ有効です。
- を直接使用する。 ソート&フィルター このデータセットでは、IPの3オクテットが同じであるため、ツールは正しい結果を与えるかもしれません。
結論
ExcelでIPアドレスを並べ替える6つの方法を紹介しましたが、あなたはどれが一番好きですか? ExcelでIPアドレスを並べ替える他の簡単な方法をご存知ですか? コメント欄で教えてください。 また、そこでさらに質問をすることもできます。