• ベストアンサー

エクセル関数

いつもご教授いただいています。 エクセル関数でお聞きしたい事があるのですが、 添付ファイルのシートのように B列の文字が基本にあり、 E列に他のシートからコピーしたものを張り付けた場合、 B列の文字や数字の並びとE列の文字や数字の並びが一致したら、 D列の数字をA列のに返すような関数を 作成したいのですが、どのようにすればよろしいでしょうか? 言葉足らずでもうしわけありませんが、 ネットで検索しようとしても、 自分の実施したい事がうまく出力されません。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>D列の数字をA列のに返すような関数を作成したいのですが、どのようにすればよろしいでしょうか? INDEX関数とMATCH関数を組み合わせる方法が良いと思います。 A2以下のセルへD列から条件に合う値を返すのですから数式をA2セルへ設定します。 =INDEX(D:D,MATCH(B2,E:E,0)) 目的のD5セルの値(4)が代入されることことを確認できたらA2セルを下へ必要数コピーすれば目的に叶います。 B列の文字列がE列に無いときはエラーになりますので、それを防ぐためにはIFERROR関数を使うと良いでしょう。 =IFERROR(INDEX(D:D,MATCH(B2,E:E,0)),"")

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

>言葉足らずでもうしわけありませんが、 言葉足らずの問題でなく、エクセルの問題を、パターン化して理解してないから解決法が見つからず、その前に適切に説明できないのだと思う。  (1)データを、キー(本件ではD列)をもとに、取ってくるとか   ある項目を共通キーとしてデータ項目を結びつける(増やす)、とか   (たとえば、氏名コード+年齢データと氏名コード+体重データがあり、氏名コード+年齢+体重データを作りたい場合) (2)A列をもとに、A,B列を並べ替えたい(ただしエクセル関数で遣る場合だが) などの際に出てくる課題です。 ーー 操作でソートする場合は、範囲にB列も含めるとか、アクセスなどでは B列項目も含めて指定することによって、連れもってきてくれるが、エクセルの関数を使う場合は、項目(セルデータ、列データ)単位で、適切に動かさなければならないので、難しさが出てくる。 ーー 本質問の定石として、該当行の行位置を探す(D列データからー>A列での位置行を探す)ため、MATCH関数で何行目かを知り、元データの何行目の何列目を指定して、1列・1セルのデータ分を持ってくる。  複数列ある場合は、式の複写の機能を利用して、式の列指定を変化させて、 データを持ってくる。  昨日土曜日に、RANK関数を利用するような質問が出たが(順位順に元データを並べ替えたいという希望)、本質問と根底は同じ課題だと思う。  必ずしも、A列の大小順である必要はなく、本質問のD列にあるデータの順を決めれば(ランダムでもよい)、それに従ってB列を持ってくることができる。

  • msMike
  • ベストアンサー率20% (363/1773)
回答No.5

A2: =INDEX(D$2:D$7,MATCH(B2,E$2:E$7,0))

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.3

D列とE列が逆ならvlookup関数を使えますが、このままでは難しく、私ならマクロを使用します。

cyari550825
質問者

お礼

回答ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

E列に貼り付ける前はエラーになるので対策 =IFERROR(INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1),"")

cyari550825
質問者

補足

回答ありがとうございました。 無事に解決致しました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

D2以下に =INDEX($A$2:$A$7,MATCH(E2,$B$2:$B$7,0),1)

cyari550825
質問者

お礼

回答ありがとうございました。 無事に解決致しました。

関連するQ&A

  • Excelの関数について

    エクセルの関数を教えてください。 画像を元にやりたいことを説明させていただきます。 Sheet1のA列の時間がSheet2のA列の時間と一致した場合、 Sheet2のB~E列をSheet1のB~E列に表示させるようにしたいです。 一致しない場合は空白にしたいです。 よろしくお願い致します。

  • エクセルの検索する関数について

    エクセルで質問です。 sheet2のA、B列の中から、sheet1のA、B列で同じ組み合わせの数字を探す。同じ組み合わせで見つかれば、sheet1の見つかった列に、D列÷E列の数字をG列に表示する関数の式を教えてください。 関数は不慣れなので宜しくお願いします。

  • エクセルの関数で

    Sheet1のA列に格納された値と一致する値を、Sheet2のA列に格納された値から検索し、もし一致する値が存在すればSheet1のE列に○を付けていくということを実現したいのですが、VLOOKUPを使ってもなかなかうまくいきません。 ちなみに、Sheet1とSheet2のA列には確かに一致する値(文字列)は存在するのですが、数量と並びはバラバラです。VLOOKUPの場合、DBでいう主キーみたいなものと値は一致している必要がありますか。例えば順番はバラバラでも、「1」という数値と「りんご」という文字列は両シートで共通して一致していないといけないみたいな…。 エクセルの達人の方がいらっしゃいましたらどうか宜しくお願い致します。

  • エクセル IF関数

    こんにちは。よろしくお願いします。 添付のエクセルシートB列に A列の数字が5より小さい数字はそのまま、5より大きい数字の場合はすべて5 (セルB2は1、B3は2・・・セルB6~B10まではすべて5)となるような関数をお教えください。 勉強不足ですみません。よろしくお願いいたします。

  • Excelの関数を教えてください。

    Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

  • エクセルの関数について

    エクセルのシート1で1行目には見出しがあります。 A1には「店名」の文字 A2には、A店 A3にはC店 A4にはB店 A5にはA店とA2~A200には、ランダムにA店~C店の文字がランダムに入っています。 B2には、「個数」の見出し文字。B2には 3 B3には 201  B4には 42 などとB2~B200まで色々な数字が入っています。 ちなみに B列には 0~300までのランダムな数字。 これをシート2に、B列の数の区分けをしたいのです B列の区分け 0~30 31~50  50~300  よって、シート2のA1には「店名」という文字。B2には 0~30  C2には 31~50  D2には50~300という文字が入っています・ シート2のA2には、A店 シート2のA3には B店 シート2の A4には C店 という文字が入っています。 シート2のB2にはシート1のA店のB列にある B2~B200に入ってる文字の 0~200までに入ってる数字 0~30の セルの個数を出したいのですが どうやってシート2に関数を入れたらいいのですか?教えてください

  • エクセル2003及び2010の関数の使い方

    エクセルで月ごとの予定表を作成しています。 B列 2行目に今年の数字2014、月はE列1行目予定の表は、B列3行目に日、C列3行目に曜日、D列3行目、E列3行目、F列3行目の3列のセルを結合して予定を記入しています。 B列4行目より関数を下記の通り作成しています。 今年の年は、B2に記入しています。 =DATEVALUE(B2&”/”&E1&”/1”)によりE1に月の数字1とか2を入力すると自動的に C4に曜日が出力されるようにしましたが、これで良いのでしょうか。 またD E Fの結合したところに定期の水曜日なら休館日とか月曜日なら10時からとか出力するにはどの関数を作成すればよいのか、エクセル2003と2010それぞれ、教えて下さい。 宜しくお願いします。

  • エクセルで関数でお聞きします。

    いつもお世話になっています。エクセルで、データを簡単にまとめたいのですが、こんな事が出来る方法がありましたら是非ご教授下さい。 Sheet1              Sheet2     A    B             A    B     1   ++   ああ        1   ++   ああ 2   --   いい        4   ++   ええ 3   **   うう         9   ++   おお 4   ++   ええ 5   //   おお 6   --   ああ 7   **   ああ 8   //   いい 9   ++   おお 10  **   いい 見づらくて申し訳ありませんが、 (1)例えばシート1の中でA列で++と入力された行だけをシート2に飛ばしたい。 ※実際は文字の完全一致では無く頭文字の一致で行いたいです。 (2)シート1で、B列の【ああ】と【いい】と【うう】と入力された個数だけを列の一番下に合計で表示したい 以上どうかご教授ください。

  • エクセル セルの関数中の一部を置き換えたい

    エクセルの操作に詳しい方にお尋ねいたします。 1つのブックの中に、例えば「集計」「東京」というシートがあるという例でお話させていただきます。 今、「集計」シートのセル番地:E100に  =VLOOKUP(B100,東京,15,FALSE) という関数が入っていて、他のE列にも「B100」以外は全く同じ関数が入っているのですが、 「東京」シートの途中に列を挿入したため、出る値が変わってしまいました。 15列目にあったものが16列目になったのだと思い、E100を  =VLOOKUP(B100,東京,16,FALSE) と、VLOOKUP関数の列番号「15」を「16」に変えてみたところ、正しい値が表示されました。 ただ、これが3000行以上あるため、手で入力し直すのは相当大変だと思います。 E列を選択して、単に「検索する文字列」に「15」を、「置換後の文字列」に「16」を入れて「すべて置換」をクリックしていいのでしょうか? 検索値(ここではB100)の中に「15」という数字が含まれているものまで変わってしまったらと思うと、 不得手な私には自信がありません。 色々調べてここまでは分かったのですが、詳しい方、どうかアドバイスをお願いします。

  • エクセルの検索・関数

    お分かりの方、教えて下さい!! エクセルにて、 A列に13桁の数字がランダムにあり、 C列にも13桁の数字がランダムにあり、 E列には1桁~3桁の数字がランダムにあります。 B列に同じ行のA列の13桁と一致するC列の13桁を見つけ、 そのC列のと同じ行のE列の数字を入れたいのです。 上記の内容が出来る関数を教えて下さい。 分かりにくくてすみませんが、よろしくお願いいたします。

専門家に質問してみよう