プロが教えるわが家の防犯対策術!

お世話になります。
Excelシート上のA列にIPアドレスが並んでおり、
第1オクテットから第4オクテットは3桁までの数で
それぞれ"."で区切られています。
各オクテットの数値をB列~E列に分けて入れるには
B列~E列にどのような関数を入れたらよいでしょうか、お知恵を拝借したく お願いいたします。

↓理想図です

------------------------------
A        |  B | C | D | E  |
------------------------------
1.2.3.4      | 1 | 2 | 3 | 4 |
------------------------------
10.5.100.6   | 10 | 5 | 100| 6 |
------------------------------
101.22.7.102  | 101| 22 | 7 | 102|
------------------------------
33.8.103.104  | 33 | 8 | 103| 104|
------------------------------

A 回答 (4件)

A列をB列にコピー


「データ」「区切り位置」で「カンマと...」を選んで「次へ」
「その他」の欄に「.」を入れて「完了」という方法もあります。
数式で行うなら
B2=LEFT(A2,FIND(".",A2)-1)
C2=MID(LEFT(A2,FIND(".",A2,LEN(B2)+2)-1),LEN(B2)+2,3)
D2=MID(LEFT(A2,FIND(".",A2,LEN(B2&C2)+3)-1),LEN(B2&C2)+3,3)
E2=RIGHT(A2,LEN(A2)-LEN(B2&C2&D2)-3)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます!
区切り位置で分けるのが簡単のようですね。
関数もご教授いただきありがとうございました。

No.1の回答者様にも即座にご回答いただき、大変感謝しております。今後は必要に応じて使い分けたいと思います。


皆様ありがとうございました。

お礼日時:2006/02/03 17:05

>どうもエレガントではありません。

。。。。
エレガントではありませんが、ダミーは不要です。B1、C1、D1、E1にそれぞれ次の式を入れます。もう少しきれいにいきたいところですが・・・
=TRUNC(SUBSTITUTE(SUBSTITUTE(A1,".",,3),".",,2))
=TRUNC(SUBSTITUTE(SUBSTITUTE(A1,(B1&"."),,1),".",,2))
=TRUNC(SUBSTITUTE(A1,(B1&"."&C1&"."),,1))
=TRUNC(SUBSTITUTE(A1,(B1&"."&C1&"."&D1&"."),,1))
最後のTRUNCは成形のためだけに使用しています。
    • good
    • 0
この回答へのお礼

ありがとうございました。
これは、、、全然考え付かなかったです!
というか貼り付けたら見事に成功しましたが仕組みはよくわかってないです。
これから分析します。。。

皆様すごいです!

お礼日時:2006/02/03 17:13

私はダミーの列が必要な場合は別シートで計算する事にしています。


そのシートを隠しておけば、見た目だけはエレガントです。
    • good
    • 0

1回こっきりの作業でしたら、一度テキストファイルで保存して、


そのテキストファイルをエクセルで開く時に、セパレーターを
"."にすれば数字をセル毎に分ける事はできますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほど~簡単でした!

ただ、作業は今後何回も発生すると予想されるので、関数では何かないでしょうか・・・・・・。
RIGHT,LEFT,FIND,LEN関数を組み合わせ、
ダミー列を何列か挿入してなんとかできるのですが、
どうもエレガントではありません。。。。。

お礼日時:2006/02/03 16:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!