エクセル VLOOKUP関数で他シートの特定のセルに値を入れる方法

このQ&Aのポイント
  • エクセルを使用して、別のシートの特定のセルに値を入れる方法について説明します。
  • 判定用という列の値と他のシートのIDと年に一致する場合、結果記号や点検記号を入れる関数についても説明します。
  • VLOOKUP関数とIF関数を組み合わせて使うことで、指定した条件に一致するセルに値を入れることができます。
回答を見る
  • ベストアンサー

別シートの指定位置へ値を入れる関数

OS:WindowsXP エクセル2003です シートAに A列     B列    C列 結果記号 点検記号 判定用 A              1_2011 A              3_2011 A      11_2011 A      12_2011        B 15_2011        X 18_2011        D 20_2011 A 1_2012 A 4_2012        D 9_2012 .... 結果記号、点検記号、そしてシート移植用の判定用があります。 判定用というのはID_年を数字にしたものです。 1_2011の場合、ID1の2011年を指し、1_2012だとID2の2012年を指します シートBには     A列  B~H列  I列  J列  1行目 ID  名称とか 2011 2012  ←ここはタイトル列です 2行目 1  りんご 3行目 2  ばなな 4行目 3  ぶどう ... 21行目 20  なし という形の表があります。 シートAの判定用列の値と一致する場所に、結果記号か点検記号を入れたいです。 例えば:シートAの判定用「1_2011」の場合 シートBのIDが1、年度が2011年のセル(I2)に結果記号のAを入れ シートAの判定用「9_2012」の場合 シートBのIDが9、年度が2012のセル(J9)に点検記号のDを入れたいです。 この場合の関数はどのような感じになるのでしょうか? シートBのI2に =IF(COUNTIF(シートA!$C:$C,$A2&"_"&I$1) と、シートAの判定用と、シートBのIDと年に一致するような関数を考えてみましたが、その後点検記号や結果記号を入れるにはどのような関数を足せばいいのでしょうか?

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

  • ベストアンサー
noname#204879
noname#204879
回答No.1

SheetB!I2: =IF(ISERROR(MATCH($A2&"_"&I$1,SheetA!$C:$C,0)),"",INDEX(SheetA!$A:$A,MATCH($A2&"_"&I$1,SheetA!$C:$C,0))&INDEX(SheetA!$B:$B,MATCH($A2&"_"&I$1,SheetA!$C:$C,0)))

nn2nn2
質問者

お礼

ありがとうございました。 理想どおりの動きです!

関連するQ&A

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

  • EXCEL関数/別シートのセル番地をセルの値で指定

    お世話になります。 どうしてもわかりません… エクセル名人の皆様、どうかお知恵をお貸しくださいませ。 Sheet1に下記のようなデータが約5000件あります。   A  B  C   D … BP  … 1 No. ID. 品目 月日…状況 … 2 1 a33  A  3/4   0    3 2 a87  B  5/11  1   このうち、BP列が1のもの約900件のみがSheet2に抽出されています。 (このためのマクロについて前回質問させていただきました) Sheet2:   A  B  C   D   E  F  G  … 1 No. ID 品目 月日             2 2  a87  B  5/11              3 7  b3  K  2/5 4 18 c44  F  12/1 5 11 r93 J 7/28 ちなみにA列のNo.は1,2,3,…と続く通し番号で、だぶりはありません。 Sheet1のデータの項目数は大変多いのですが、Sheet2にはその項目すべては必要でないため、 Sheet2には上記のとおりAからD列までの必須情報のみ抽出し、 E列以降の情報については、必要な列の情報のみ、 A列の通しNo.で紐づけしてVLOOKUP関数で取得したいと考えています。 しかし、Sheet1の表には空欄があり、これを空欄のまま表示させるために IF関数を使いたいのですが、 Sheet1の参照元のセルの番地をどう書けばいいでしょうか? とてもわかりにくくて申し訳ありません… たとえば、Sheet2のA列が18であれば(上記Sheet2のA4)、 元データはSheet1の19行目にあることになります。  A列の数値+1、が行番号ということです。 そのK列を参照する場合、 =IF(Sheet1!K19="","",VLOOKUP(A4,Sheet1!A:K,COLUMN(K4),FALSE) となるかと思うのですが、 このSheet1!K19 というセル番地を、自分で計算して手入力するというのはとても大変なので、 関数などで表現する方法はないでしょうか。 たとえば、Sheet1!K(A4+1) とか書いてみましたが、もちろんこれでよいわけもなく… 不勉強で恐縮ですが、どうしてもわかりません。 どうかご教授ください。 よろしくおねがいいたします。

  • Excel関数 別シート参照現シートに合計値を表示

    お世話になっております。 Excel関数について質問させてください。 まず私の環境にExcelが入っておらず、OpenOfficeの3.3を代用しております。 カテ違いでしたらごめんなさい・・・。 【質問】 Sheet1のリスト(A列とする)に存在する文字列を Sheet2の複数列(D列、F列、H列)に一致する文字列毎の数値(E列、G列、I列)の合計を Sheet1の列(B列とする)に表示したい 【データ例】 ○Sheet1  A列 B列  A   3  B   10  C   6  D   0 ○Sheet2  D列 E列 F列 G列 H列 I列  A   1   G  0   A  1  C   2   H  2   B  2  B   3   A  1   C  4  E   4   B  5   E   5 【試した事】 まず一辺には無理だと思い、 Sheet1のB列に以下の関数を入れてみました =IF('Sheet2'.D1=A1;"a";"b") これで一見判定が出来てる風だったのですが、 Sheet1のB1列に"a"と出て、他全て"b"と出ました。 恐らく、順不同で比較項目が並んでいる所為だと思いますが、 この並び順を変更するわけにはいかず・・・。 そもそも、文字型と数値型が一つの関数に指定出来るのかも不明で・・・。 どなたかわかる方、ご教授お願いいたします。 わかりにくい例ですみません。 【補足】 私の個人的見解として、関数で出来る気がしないのですが、どうなんでしょう・・・? もし、関数で無理ならVBかJavaでゴリゴリ組みます。

  • シートの行並びの値を別のシートの列にコピーする式は

    あるシートに並んでいる行数値を別シートの列に並べる関数を教えていただけませんか (例)シート1      A   B   C   D 12   48 38  15  39 上記A12 に48 B12に38 C12に15と並んでいる数値を別のシートに列に並びかえる式は? シート2   A 1 48 2 38 3 15 4 39 と行った様にする関数を教えてください。単に数値だけなら                  行と列の並び替えでできますがそうではなくシート1に数値を入力                  することにより関数によって自動的にシート2に数値を表したい。                  

  • エクセルの空白を詰めて別シートに表示

    sheet1のデータを参照して、空白を詰めてsheet2へ表示させたいんです! sheet1(元データになるもの)  A列 |B列|C列・・・ 1行目A|100|100 2行目B|  |200 3行目C|100| 4行目D|  |200 5行目E|100| 6行目F|  |100 ・ ・ sheet2(sheet1でB列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目C|100 3行目E|100 sheet3(sheet1でC列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目B|200 3行目D|200 4行目F|100 sheet2のA1に下記の式を入力してA列とB列に数式をコピー =IF(COUNT(Sheet1!$B$1:$B$6)<ROW(A1),"",INDEX(Sheet1!A$1:A$6,SMALL(IF(Sheet1!$B$1:$B$6<>"",ROW($A$1:$A$6)),ROW(A1)))) すると下記のように表示されます。 A1=A     B1=100 A2=#NUM! B2=#NUM! A3=#NUM! B3=#NUM! 4行目から空白 sheet2のA2のところにエラーが出ていますが、「関数の引数」のところで「数式の結果」には「100」と 正解が表示されています。(B2、A3、B3も同様に)数式の結果のところには正解が表示されています。 答えの「#NUM!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • エクセルの関数を使って別のシートに文字の一部を返す

    シート1のA列に住所コード、B列に市を入力する欄、シート2のA列に住所コード、B列に県から始まる住所録のデータがある場合、例えばシート2のB列1行目にある愛知県名古屋市という文字列のうち、名古屋市という文字だけをシート1のB列1行目に返したい場合はどのような関数を使えばよいでしょうか? よろしくお願い致します。

  • Excelでの値の比較

    エクセルにおいて、sheet2のA列とB列をsheet1のA列とB列を比較して、一致した場合sheet2のD列に下記のような結果を示すようにしたいのですが、どうやってD列に関数を組めばよいのか分からないので教えてください! 【sheet1】 A列 B列 C列 1行 001 AAAA 部品1 2行 002 BBBB 部品2 3行 003 CCCC 部品3 4行 004 DDDD 部品4 5行 005 EEEE 部品5 6行 006 FFFF 部品6 7行 007 GGGG 部品7 【sheet2】 A列 B列 C列 D列←この列に関数で○か×をつける 1行 001 AAAA 部品1 ○←sheet1にあるので○ 2行 008 HHHH 部品8 ×←sheet1にないので× 3行 004 DDDD 部品4 ○ 4行 009 IIII 部品9 × 5行 005 EEEE 部品5 ○ 6行 002 BBBB 部品2 ○ 7行 010 HHHH 部品10 ×

  • EXCELで複数の値を検索する

    ■シートA   A列   B列   受験ID  合格判定 1 ID001 2 ID002 3 ID003 4 ID004 5 ID005 ■シートB   合格者リスト 1 ID002 2 ID005 上記のようなデータがあり、シートBの合格者リストにIDが ある場合、シートAのB列「合格判定」に「合格」と入力 したいのです。 この場合の合格は、ID002とID005ですから B2とB5に「合格」と文字を入れたいのです。 合格者リストが数回変動しますので、B列に関数で入力したいです。

  • excelでデータを別シートに引っ張ってきたい

    excelで値を検索し、返す時、返す値の横にあるデータを違うシートのセルの下に一緒に引っ張ってきたいときの関数(方法)を教えてください。 素人なので分かりにくいと思いますが、お知恵をお借りしたいと思います。 あるデータのシートの検索値を別シートに持ってきたいのですが、シート1をシート2のようにしたいのです。 /は空白 例)シート1 /A B C D E 1(1) □ ○ ▽ ◎ 2 (2) ▼ ■ ◇ ◎ シート2 / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 分かりにくいかもしれませんが、 シート1の(1)(A1)を検索すると、シート2(B1)に□(これはVLOOKで引っ張ってこれるのはわかります。) 次にシート1の(C1)○をシート2の(B2)へ持ってきたいのです。シート1(D1)(E1)はシート2の(C2)(D2)へ。 しかもシート1のC列は空白セルもあり、シート1のC列が空白の場合、下にずれることなくシート1の(D1)(E1)はシート2の(C1)(D1)へ。下記<図a>のようになるようにしたいのです。 そして、シート2のA列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。(2)の行のC列にデータがあっても、(5)のC列にデータはないこともあります。<図b> <図a> /A B C D 1 (1) □ ▽ ◎ 2 (2) ▼ ◇ ◎ <図b> / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 5 (5) □ ▽ ◎ 6 (7) ▼ ◇ ◎ vlookとかCLUMN関数とか考えてはみたのですが、どうもうまくいきません。 毎回作成するデータなのですが、毎回コピペで作成しています。 とても面倒なので(1)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。

専門家に質問してみよう