この記事を読むと・・・ |
---|
「.(ドット)」で区切られた文字列から各部分の文字を抽出する方法が理解できる |
区切り文字を指定し、各オクテットを抽出する方法
IPアドレスは、通常、4つのオクテットに分かれています。
各オクテットは0から255までの数字で構成されており、例えば192.168.10.100というIPアドレスは、第一オクテットが192、第二オクテットが168、第三オクテットが10、第四オクテットが100であることを意味します。
今回はIPアドレス(例:192.168.10.100)がA1セルに記載されていることを前提として説明します。
第一オクテットを関数で抽出する
第一オクテットを抽出する式は以下の通りです。
まず、FIND(".", A1)
で最初のドットを検索し、その位置から1文字手前までの文字列をLEFT(A1, FIND(".", A1) - 1)
で抽出しています。
つまり、この式により、192.168.10.100の第一オクテットである「192」が抽出されます。
=LEFT(A1, FIND(".", A1) - 1)
第二オクテットを関数で抽出する
第二オクテットを抽出する式は以下の通りです。
まず、FIND(".", A1) + 1
で最初のドットの位置に1を足し、第二オクテットの先頭位置を特定します。
次に、「FIND(“.”, A1, FIND(“.”, A1) + 1)」で2番目のドットの位置を特定し、これに- FIND(".", A1) - 1
を引くことで、第二オクテットの文字数を求めます。
最後に、MID(A1, FIND(".", A1) + 1, FIND(".", A1, FIND(".", A1) + 1) - FIND(".", A1) - 1)
で、第二オクテットを抽出しています。
つまり、この式により、192.168.10.100の第二オクテットである「168」が抽出されます。
=MID(A1, FIND(".", A1) + 1, FIND(".", A1, FIND(".", A1) + 1) - FIND(".", A1) - 1)
第三オクテットを関数で抽出する
第三オクテットを抽出する式は以下の通りです。
まず、FIND(".", A1, FIND(".", A1) + 1)
で、A1セルの中で2番目のドットの位置を探し出します。
次に、この式に+1
を足し、2番目の”.”の直後にある数字の位置を見つけます。
それが第三オクテットの先頭の位置です。
次に、FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1)
で、A1セルの中で3番目のドットの位置を見つけます。
そして、この数値から、先ほど求めた第三オクテットの先頭位置を引くことで、第三オクテットの数字の文字数を求めます。
最後に、MID(A1, FIND(".", A1, FIND(".", A1) + 1) + 1, FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1) - FIND(".", A1, FIND(".", A1) + 1) - 1)
で、第三オクテットの先頭位置と文字数を指定して、第三オクテットを抽出します。
つまり、この式により、192.168.10.100の第三オクテットである「10」が抽出されます。
=MID(A1, FIND(".", A1, FIND(".", A1) + 1) + 1, FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1) - FIND(".", A1, FIND(".", A1) + 1) - 1)
第四オクテットを関数で抽出する
第四オクテットを抽出する式は以下の通りです。
まず、FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1)
で、A1セルの中で3番目のドットの位置を見つけます。
次に、この数値に+1を足し、4番目のセグメントの先頭位置を特定します。
最後に、RIGHT(A1, LEN(A1) - FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1))
で、A1セルの中の最後の数字を抽出します。LEN(A1) - FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1)
により、A1セルの最後の数字の文字数を計算します。
そして、RIGHT関数にこの数値を渡すことで、第四オクテットを抽出しています。
つまり、この式により、192.168.10.100の第四オクテットである「100」が抽出されます。
=RIGHT(A1, LEN(A1) - FIND(".", A1, FIND(".", A1, FIND(".", A1) + 1) + 1))