• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんな関数ありますか?)

Excel関数で特定の文字列を参照し、結果を表示する方法

このQ&Aのポイント
  • Excelの関数を使って、特定の文字列を参照し、結果を表示する方法について教えてください。
  • Excelのセル内の文字列を条件として、他のセルの値を参照する方法について教えてください。
  • ExcelのSUMPRODUCT・COUNTIF・IF・ROW・INDEX関数を組み合わせて特定の文字列を参照し、結果を表示する方法について教えてください。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

=MIN(10^ISERROR(FIND($B$1:$B$6,A1))*($C$1:$C$6),999) と入力してCtrl+Shift+Enterで配列数式にしてください。

tamako1111
質問者

お礼

できました~(泣) ありがとうございました(泣) これで仕事が進みます♪

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

余りスマートでないのですが次の方法は如何でしょうか。 D1セルに=IF(SUMPRODUCT((RIGHT(A1,(LEN($B$1:$B$870)))=$B$1:$B$870)*(ROW($B$1:$B$870)))>0,INDEX($C$1:$C$870,SUMPRODUCT((RIGHT(A1,LEN($B$1:$B$870))=$B$1:$B$870)*(ROW($B$1:$B$870)))),999)を設定、D1セル枠の右下の■をダブルクリックして下さい。

tamako1111
質問者

お礼

ありがとうございます。 No4さんのものでできました。

全文を見る
すると、全ての回答が全文表示されます。
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.3

■D1セル =IF(SUMPRODUCT(COUNTIF(A1,"*"&B$1:B$870&"*")),INDEX(C$1:C$870,MAX(INDEX(COUNTIF(A1,"*"&B$1:B$870&"*")*(ROW(B$1:B$870)),0))),999) A列は検索用ならそれほどデータは多くないということですよね。 あまり多く入力すると処理が重くなります(それでなくても重いですが・・) B列に重複する文字列はありませんか? たとえば川越市と南川越市のように。 そういうのがあると正しい結果が返らない可能性があります。 その場合、B列の入力順は川越市→南川越市のように文字数の少ない方を上の行にしておけばいいかもしれません。 B列が何行目から始まっていても、ROW(B$1:B$870) はそのままにしておいてください。

tamako1111
質問者

お礼

ありがとうございます。 やってみましたがエラーが出てしまいました。 No4さんのもので解決できました。

全文を見る
すると、全ての回答が全文表示されます。
noname#37676
noname#37676
回答No.2

D1セルに =IF(ISERROR(VLOOKUP(A2,$B$2:$C$870,2,FALSE)),999,VLOOKUP(A2,$B$2:$C$870,2,FALSE)) D列にフィルコピーでは??

tamako1111
質問者

お礼

ありがとうございます。やってみましたが、この方法だと、完全一致の際は正しく表示されるのですが、部分一致、例えば秩父郡横瀬町と書いてある中から横瀬町を検索して361と表示させるところが999になってしまいます。 もし原因がお分かりでしたら再度ご助言お願いします。

全文を見る
すると、全ての回答が全文表示されます。
noname#25358
noname#25358
回答No.1

 補足お願いします。 1.A列にはA1、A2、A3にそれぞれ別々の文字列が入っているようですが、検索対象となるのはあくまで「A1」ということでいいのでしょうか?  だとすると、A2以降のセルは使用しないということになりますが。 2.上記の例ではD1に203とありますが、C1は201です。  これらの数字の間にはなぜ相関関係がないのでしょうか。

tamako1111
質問者

お礼

すみません、説明がわかりにくかったですよね。 補足しましたのでお手数ですがお願いします。

tamako1111
質問者

補足

1.A1の文字列の一部又は全部がB1~870の中に含まれているか検索したいのです。従って、D1に表示させるのはA1を検索した結果です。D1に表示させるときはA2以下のA列は使用しません。また、D2以降、関数をコピーしてA2、A3・・・の検索結果も出していきます。 2.A1に川田市とありますので、B列から川田市がないか検索します。するとB3にありますので、その行のC列、つまりC3の203をD1に表示させたいです。従って、A2は秩父郡横瀬町なので、B列から検索して秩父郡横瀬町の一部、横瀬町が入っているB4のC列、つまり361をD2に表示させる。という感じにしたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数を教えてください

    日時が一致した列の指定したセルの値を 別セルに表示   A    B   C   D 1 7/1 7/2 7/3 7/4 2 256  264 273  286 3   8   7   13 4 5 6 7/3 7 ? A6(日付)と一致した列の3行目をA7に表示させる関数を教えてください。 勉強不足ですみませんがよろしくお願いします。

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • if関数について

    if関数についてどなたか教えてください。 ある二つの名簿があって、二つの名簿を照合して名寄せをしたいのですが、たとえば、A列の1行目から10行目まで、同じくB列の1行目から10行目まで氏名が入っているとします。A列とB列に同じ名前が入っていれば、C列に○印をつけるように関数を設定したいのです。自分なりに考えて、次のようにif関数を設定しました。・・・がうまく表示されません。エラーは出ませんので、関数としては成り立っていると思うのですが、○印が表示されません。どなたか間違いを指摘いただけませんでしょうか? C1のセルに次の関数を設定して、C10までコピーをしました。 if(A1=$B$1:$B$10,”○”,””) よろしくお願いいたします。

  • セルの内容を合わせるエクセル関数

    お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。

  • エクセル関数の詳しい方ご教示ください。

    エクセルの詳しい方、ご教示ください。 A B C D E F G(表示したい列) 1行目 2 3 5 7 9 2 =知りたい関数 2行目  4 5 8 9 1 2 上記のようなランダムな数値データがあり、 ・Aの列に表示している数字の数だけ、 ・Bから右の列に移動した数字を、 ・Gの列に表示したい と、思っています。 例で考えると、 G1のセルは7 G2のセルは2 と表示されるイメージです。 Gにはどのような関数を使えばよいでしょうか?

  • この場合の関数は何ですか。

    教えてください。 ある行の指定範囲内にある「★」がつくセルの列の列名を、別のセルに表示したいとき、どんな関数を使えばよいですか。 例は以下のとおりです。【2行目の場合】 B2からD2の範囲で★がついているのはB2。 その列名にあたるB1の「佐藤」をG2に表示させたい。    A列  B列   C列   D列   E列   F列   G列   1行     佐藤  鈴木  田中     担当日 担当者 2行 4月1日 ★              4月1日 佐藤 3行 4月2日     ★ 4行 4月3日         ★

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

  • 一番下がどこかを確認する関数を知りたいのですが・・・

    タイトルではチョッとわかりにくいかと思いますが。。。 以下に簡単な例を記しておきますので、どなたかご教示おねがいします^^;       A列   B列   C列   D列 1行目 2行目    ○    3行目 4行目    ○        ○ 100行目       ○ 200行目                 ○ こういうようなシートがあったとします。 別シートの式で自動で○が入力される表なわけですが これらは、○があるセルもあれば、空白のセルもあります。 上のシートを例にすると、A列の一番下の○は4行目、B列は100行目、C列は4行目、D列は200行目、となっております。 一番下までの○が何行目になるのか。ということを知りたいのです。 もちろん自分で数えれば簡単にわかる結果ですが、これを自動で表示するような関数があればと思い、質問させていただきました。 私の知る関数の知識、また応用力ではお手上げ状態です、どなたかご存知の方、よろしくお願いします^^;

専門家に質問してみよう