Excel文字列一部含む場合の戻り値

このQ&Aのポイント
  • Excelで、sheet2のB1に'sheet2'!A1が'sheet1'!A1を含む場合はsheet1!A2、'sheet1'!B1を含む場合はsheet1!B2を返す関数を作りたい。
  • sheet2のB1に'sheet2'!A1が'sheet1'!A1を含むかどうかを比較し、結果に応じてsheet1のセルを返す関数を作りたい。
  • Excelで、sheet2のB1に含まれるIPアドレスの第2オクテットを比較し、それに応じてsheet1のセルを返す関数を作りたい。
回答を見る
  • ベストアンサー

Excel 文字列一部含む場合の戻り値

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を使用しなくても結果が得られると考えますが全く検討がつきません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

=IF(A1="","",REPLACE(REPLACE(A1,FIND(".",A1,FIND(".",A1)+1),99,""),1,FIND(".",A1),"")+0) といった具合で第2セグメントを得ます。 >若番号・そうでない はナンのことかちょっと分かりませんので,適宜工夫して下さい。

miniminidog_001
質問者

お礼

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

miniminidog_001
質問者

補足

早速の回答ありがとうございます。 >若番号・そうでない については説明不足でした。 第2オクテッドは常に2つの連続した数字しか入りません。 例えば、172.20.*.*と172.21.*.*     10.16.*.*と10.17.*.*といったように番号が付与されています。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

既出回答のような方法でアタマ使わずとにかくチカラワザで計算すると =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) のように,子細気にせずにそのまま大小で判定してしまっても良いかも知れません。

miniminidog_001
質問者

お礼

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

関連するQ&A

  • Excel IPアドレスを比較してセルを入替える

    以下のようなデータ   A列     B列 192.170.1.1 192.171.1.1 192.171.1.2 192.170.1.2 IPアドレスの第2オクテッドを比較し数値の小さいほうをが左にくるように VBAでクリック釦を作成したいのですがどのように記述すればよいでしょうか? 釦をクリックすると   A列     B列 192.170.1.1 192.171.1.1 192.170.1.2 192.171.1.2 のように該当のセルがA列・B列入れかえができる。 IPアドレスを取得する関数は ユーザー関数を使用してsplitn(範囲、第○オクテッド)で 第2オクテッドの数値は取得できます。 よろしくお願いします。

  • Excel vba の書き方教えてください。

    書き方が分からないのでおしえてください。 やりたい動作は下記になります。 データは Sheet1のA列にIPアドレスだけ書いてあります。 Sheet2のA列にはIPアドレス(例 111.111.111.*) B列には名前(例 honsya) Sheet3のA1にはAAAAA、 A2にはBBBBB が書いてあるシートがあります。 (1)処理が完了したデータを記入するシート(シート名:完了)を作成。 (2) Sheet1のIPアドレスを第3オクテッド目までの値が同じものをSheet2のA列から探します。 (3)探し出したA列の値の右よこのB列の値を作成した完了のシートに書きだします。 その際 Sheet3に記載されているデータと検索対象のIPアドレスをB列の値にくっつけます。 ↓こんな感じに AAAAA "[B列の値]([検索対象のIPの第4オクテッド])" [検索対象のIPアドレス] BBBBB この状態のものが 完了 のシートに書きだされるようにしたいのです。 ここ数日これで悩んでて解決しないのでどなたか助けてください。

  • Excel vba 条件検索?について

    できるのかどうかわからないのですが Sheet1 にIPアドレスの一覧があり Sheet2 にA列に192.10.2.* B列にhonsya と書いた一覧があるとして (例に挙げてるIPは適当です・・・。) Sheet1のIPアドレスの第3オクテッド目までの値とSheet2のA列の第3オクテッド目までの値を比べてSheet2の値に該当したものB列の値を出力するその際に 出力データの前後に文字を足して出力。 Sheet1にあるデータ分を行い データは出力したデータの下に 出力していく といった形をとりたいのですが 本当にできるのでしょうか?

  • 文字列の検索について

    お世話になります。 エクセルでの検索及び結果の出し方について教えてください。 1枚目のシート    2枚目のシート A列           A列 1-1           1-4 1-2           2-1 1-3           1-2 1-4           1-3 とある場合、 2枚目シートのA列と同じものがある場合、1枚目シートのB列に以下のような結果を出したい場合の関数を教えて頂けないでしょうか。 1枚目のシート A列   B列 1-1    無 1-2    同 1-3    同 1-4    同 よろしくお願いいたします。

  • 同じ文字列がある場合、その行のB列を自動入力させい

    シート1 A列=メールアドレス シート2 A列=メールアドレス B列=名前 を入力しています。 シート1A列にあるメールアドレスがシート2A列にもあった場合、 シート2の同じメールアドレスの行のB列にある名前をシート1のB列に自動で入力させたいのですが そんなことはできないでしょうか? 結果としては シート1のB列にメールアドレスに紐づいた名前を入れたいです。 今、シート1にあるメールアドレスをシート2で検索してあった場合は シート2のB列をコピーしてシート1のB列にペーストしていますが、 件数が5000件くらいあるので気が遠くなりそうです。 よろしくお願いいたします。

  • ExcelでPC管理台帳を作りたいです

    (1)sheet1はハード一覧の台帳としてA列にPC番号を入力しておきます (2)sheet2は固定IPアドレスの割当状況一覧としてA列に1.1.1.1~1.1.1.254までの値を入力しておきます sheet1のB1セルに1.1.1.1を入力した場合、sheet2のB1セルにsheet1のPC番号(A1セルの値)を 表示させる(リンクさせる)にはどの様な関数を使ったら良いでしょうか? 宜しくお願い致します。

  • 文字列の中に特定の文字を含む場合に値を…

    こんにちは。 Excelの関数の使い方で、以下のようなことをしたいのですが、教えていただけますでしょうか。 Sheet1には、長い文字列が表示されている(仮に、A1)→任意 Sheet2には、↑の長い文字列に含まれそうな短い文字列が記載(A)されていて、且つそのとなりには動作が記載されている(B)→双方固定 この状態で、"Sheet2の文字列がSheet1の長い文字列に含まれる場合"にはSheet2のB列の動作が表示されるようにしたい。 例: Sheet1のA1:aaaabbbbccccddddeeeeffffggggdoghhhiiiijjjjkkkk Sheet2のA1:dog Sheet2のA2:cat Sheet2のB1:ワン Sheet2のB2:ニャー の状態で、関数を介して、任意のセルに、"ワン"と自動で表示させたい。 Sheet1のA1にcatという文字列が含まれていれば、"ニャー"と表示させたい。 分かりにくくて申し訳ないですが、よろしくお願い致します。

  • EXCELのシリアル値と文字列

    職業柄時間のデータが正しく入力されているかEXACT関数を使って様に検証しています。具体的には Aの列-指示のデータ Bの列-入力したデータ Cの列-比較結果 という具合です。 今までは両方のデータが時刻の書式だったためうまくいっていたのですが、この指示のデータの方が文字列で入力されてきてしまい、EXACT関数では全てFALSEになってしまいます。 例えば12:00:00と言う場合 Aの列-12:00:00=0.5 Bの列-12:00:00=0.5 Cの列-TRUE だったのが、Aの列が文字列になってしまったため Aの列-12:00:00=12:00:00 Bの列-12:00:00=0.5 Cの列-FALSE になってしまいます。現状ではAの列の書式設定を時刻にしてからそのセルをダブルクリックすれば解決することは分かりましたが、なんせデータが膨大な量なので困っています。よろしくお願いします。

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。

専門家に質問してみよう