プロが教える店舗&オフィスのセキュリティ対策術

A1セルに www.xxx.yyy.zzzというIPアドレスがあります。
このうちyyyの部分だけ、関数を使用してB1セルに自動で入力するようにしたいです。
www.xxx.の文字数は常に固定ですが、yyy.zzzは文字数が変動します。
yyy、zzzの各ブロックは最低1文字、多くて3文字になります。

お手数ですが、ご教授頂きたくお願い申し上げます。

A 回答 (7件)

基本はmid関数です。

=mid(文字列,開始位置,文字数)ですね。最初の
[www.xxx.]の部分は決まってますから、開始位置は固定です。たと
えば今は9文字目から。問題は文字数が1~3で変動するのをどうやっ
て捕まえるか。

マジメにヤルなら、find関数でドットの位置を検索して文字数を計
算します。=find(".",A1,9)とすると、9文字目以降最初に.が現れる
のは何文字目か分かりますから、=find(".",A1,9)-9文字が取り出す
べき文字数です。

=mid(A1,9,find(".",A1,9)-9)

これはmt2008さんと全く同じですね。4つ目のブロックを取り出す場
合に応用が利くのでおすすめです。

とか言ってずぼらな私は、3文字固定で取り出しても小数点以下がつ
いてるだけにしか見えないことを使って、

=int(mid(A1,9,3))

というザツい方法を使いますけどね。
    • good
    • 0
この回答へのお礼

教えて頂いた内容で関数でできました。ありがとうございます。

お礼日時:2009/05/26 00:10

こんにちは。



よく読んでみると、IPアドレスであって、ULR ではないわけですね。

#6さんのご指摘のように、111.222.333.444 というIPアドレスは、1ブロック目も2ブロック目も、本当に固定なのでしょうか?ISPが同じなら、変わらないと思いますが、そうでないと変わってしまいます。各ブロックは、1桁~3桁まであるわけですね。

以下は、あくまでも、「.」の場所で決めています。
ご参考までに出しておきます。

=MID(A1,FIND("^",SUBSTITUTE(A1,".","^",2))+1,FIND("^",SUBSTITUTE(A1,".","^",3))-FIND("^",SUBSTITUTE(A1,".","^",2))-1)

IPアドレス汎用にするには、このようになります。別のブロックなら、SUBSTITUTE の引数の 2,3 を入れてください。
    • good
    • 1

この点質問書いてありますか・。


>IPアドレスがあります
IPアドレスの入ったセルを見つけるのは、人間?
>​www.xxx.​の文字数は常に固定ですが
これは問題としては易しくなってありがたい。RIGHT関数で右残りは判るから。
>yyyの部分だけ、関・・
yyyとzzzの区切りはどうすれば(どう考えれば)判るの?
>yyy.zzzは文字数が変動します。
ならyyyの部分は尋常では判別できないのでは。
ーー
説明が荒っぽく無いですか?
    • good
    • 0

「yyy、zzzの各ブロック」の文字数に関係ない次式は如何?


=LEFT(MID(A1,9,99),FIND(".",MID(A1,9,99))-1)
    • good
    • 0

#1のhandomariです。



先の説明の2行目を間違えました。

←仮にA4に取り出したとします。

に修正してください。
    • good
    • 0

「WWW.XXX.」が固定(9文字目からYYYが始まる)場合、↓これで


良いかと思われます。
=MID(A1,9,FIND(".",A1,9)-9)

FINDで9文字目以降で初めて「.」が出てくる位置を取得して
MIDで9文字目からFINDで取得した位置-9 文字を取り出して居ます。
    • good
    • 0

いったん作業用のセルにwww.xxx.の後ろ側を次の関数で取り出します。



=MID(A1,9,7)   ←仮にB1に取り出したとします。

その後に、次の関数でyyy部分が取り出せます。

=LEFT(A4,FIND(".",A4)-1)

さらに、次の関数でzzz部分が取り出せます。

=RIGHT(A4,LEN(A4)-FIND(".",A4))
    • good
    • 0

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