sheet1
 A     B
1 20     21
2 0      1

sheet2
  A              B
1 172.20.1.1
2 172.21.1.1

とあった場合、
sheet2のB1に'sheet2'!A1が'sheet1'!A1を含む場合はsheet1!A2、'sheet1'!B1を含む場合はsheet1!B2
を返すように関数を組みたいのですがうまくいきません。


【前提】
sheet2 A列に入力されるのはIPアドレスです。

【得たい結果】
IPアドレスの第2オクテッド(172.~とか10.~など第1オクテッドは変化します)のみを比較して若番号には”0”、そうでない場合は”1”が戻り値で取れれば
sheet1を使用しなくても結果が得られると考えますが全く検討がつきません。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

=IF(A1="","",REPLACE(REPLACE(A1,FIND(".",A1,FIND(".",A1)+1),99,""),1,FIND(".",A1),"")+0)


といった具合で第2セグメントを得ます。

>若番号・そうでない
はナンのことかちょっと分かりませんので,適宜工夫して下さい。

この回答への補足

早速の回答ありがとうございます。

>若番号・そうでない
については説明不足でした。

第2オクテッドは常に2つの連続した数字しか入りません。
例えば、172.20.*.*と172.21.*.*
    10.16.*.*と10.17.*.*といったように番号が付与されています。

補足日時:2011/04/19 16:40
    • good
    • 0
この回答へのお礼

回答いただいた内容を使用して問題を解決できました。
ありがとうございました。

お礼日時:2011/04/19 17:38

既出回答のような方法でアタマ使わずとにかくチカラワザで計算すると


=IF(COUNTA(A1:A2)<2,"",0+(INT(REPLACE(SUBSTITUTE(A1,".","",3),1,FIND(".",A1),""))>INT(REPLACE(SUBSTITUTE(A2,".","",3),1,FIND(".",A2),""))))

=IF(COUNTA(A1:A2)<2,"",0+(INT(REPLACE(SUBSTITUTE(A1,".","",3),1,FIND(".",A1),""))<INT(REPLACE(SUBSTITUTE(A2,".","",3),1,FIND(".",A2),""))))
のようになりますが,


第1octは172や10など変わるにしても,今比較したいA1とA2ではとりあえず共通である
第2octは20と21など,今比較したいA1とA2では連続した2つの数字である
第3・第4octは,色々変わる

という事だとすると,簡易には
B1:
=IF(A1>A2,1,0)
B2:
=IF(A1>A2,0,1)
のように,子細気にせずにそのまま大小で判定してしまっても良いかも知れません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
簡易の考え方を応用して解決できました。
ありがとうございました。

お礼日時:2011/04/19 17:39

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


人気Q&Aランキング