ミスチルの大名曲の数々が配信決定!! 31日間無料!!【PR】

エクセル超初心者です。仕事で困っています。是非、ご教授下さい。
エクセルで、sheet1のデータにsheet2のリスト価格データを元に紐付けをしたい。
一致する値は、商品番号です。

sheet1  
商品番号  商品名  
 1      AAA    
 2      ABA    
 5      BBC    
 7      BCE    
 9      CDE    

sheet2
商品番号  価格
 1     1000円
 2      500円
 3      400円
 4      200円
 5      500円
 6      300円
 7      200円
 8      100円
 9      300円
10      500円
11      400円
12      200円
13      100円

結果的に以下の表になればいいのですが……
宜しくお願いします。

商品番号  商品名      価格
 1      AAA        1000円
 2      ABA         500円
 5      BBC        500円
 7      BCE        200円
 9      CDE        300円

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

A 回答 (2件)

シート2の商品番号は、小さい数字から大きい数字に順に並んでいるのですね?


それでしたら、VLOOKUP関数で大丈夫です。

シート1のA列2行目から商品番号が入っており、B列に商品名が入っているとして、
C列に、「=VLOOKUP(A2,Sheet2!A:B,2,FALSE)」と入力すれば、データを引いてくると思います。
関数の意味は、VLOOKUP関数で検索をかけていただければ、分かりやすいサイトが色々と見つかると思います。

余談ですが、エクセルはバージョンによって、かなり扱いが変わってきます。VLOOKUPくらいは、どのバージョンでもありますから、大丈夫ですが。
できれば、バージョンを書いておかれる方が、分かりやすい回答が貰いやすいと思いますよ。
    • good
    • 4
この回答へのお礼

 ありがとうございます。思わず感動してしまいました。

お礼日時:2012/03/19 18:46

 LOOKUP関数


 VLOOKUP関
かな。
 =LOOKUP(検査値,検査範囲,対応範囲)
 =VLOOKUP((検索値,範囲,列位置,検索の型)
というように使います。

この場合、商品番号はA列、商品名はSheet1のB列、価格はSheet2のB列として
 =LOOKUP(A1,Sheet2!$A:$B,2,False)
のように使います。
ポイントは、
 「範囲を絶対参照にする」
こと。
$マークを使用することで範囲を絶対参照にしてください。
範囲が Sheet2 の A1:B2 ならば、Sheet2!$A$1:$B$2 のようにします。
※ よく分からないのでしたら、範囲を指定したあとに左上の名前ボックスに「検索範囲」とでも入力して
 範囲の指定には「検索範囲」と文字を入力してください。
 =VLOOKUP(A1,検索範囲,2,False)
 これでOK。

【重要】
Excelのヘルプを参照するか、解説サイト、解説書籍を読んで関数の動作を理解した上で
使うようにしましょう。
でないと、同じようなケースでも全く応用ができず、また他人に頼ることになります。
目の前の問題が解消して解決ではなく、理解できて始めて解決と思うようにしましょう。
    • good
    • 2
この回答へのお礼

ありがとうございます。勉強になりました。

お礼日時:2012/03/19 18:44

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【至急】エクセルで、一致するデータを紐付けたい

エクセルでsheet1のA列のデータに、sheet2の並び順の異なるA列~F列のデータを紐付け、一致、並び替えする方法がありましたら、ご教授ください。よろしくお願いいたします。
※sheet1のA列とsheet2のA列は、同じデータですが順不同で入力されています。

sheet1
A   B   C   D   E   F   G
田中
斉藤
新井
伊東
塚越
佐藤
吉田

sheet2
A   B    C     D      E      F  
斉藤 東京都 文京区 123-0000 0120-・・・ ×
伊東 東京都 台東区 123-1000 0120-・・・ ○
新井 東京都 江東区 123-0000 0120-・・・ ×
吉田 東京都 豊島区 121-0100 0120-・・・ △
塚越 東京都 文京区 122-0000 0120-・・・ ×
佐藤 東京都 新宿区 121-0000 0120-・・・ ○
田中 東京都 大田区 111-0000 0120-・・・ ◎


◆得たい結果◆
sheet1
A   B   C    D      E      F     G
田中 田中 東京都 大田区 111-0000 0120-・・・ ◎
斉藤 斉藤 東京都 文京区 123-0000 0120-・・・ ×
新井 新井 東京都 江東区 123-0000 0120-・・・ ×
伊東 伊東 東京都 台東区 123-1000 0120-・・・ ○
塚越 塚越 東京都 文京区 122-0000 0120-・・・ ×
佐藤 佐藤 東京都 新宿区 121-0000 0120-・・・ ○
吉田 吉田 東京都 豊島区 121-0100 0120-・・・ △

エクセルでsheet1のA列のデータに、sheet2の並び順の異なるA列~F列のデータを紐付け、一致、並び替えする方法がありましたら、ご教授ください。よろしくお願いいたします。
※sheet1のA列とsheet2のA列は、同じデータですが順不同で入力されています。

sheet1
A   B   C   D   E   F   G
田中
斉藤
新井
伊東
塚越
佐藤
吉田

sheet2
A   B    C     D      E      F  
斉藤 東京都 文京区 123-0000 0120-・・・ ×
伊東 東京都 台東区 123-1000 0120-・・...続きを読む

Aベストアンサー

シート1のB1に
=VLOOKUP($A1,Sheet2!$A:$F,COLUMN(A1),FALSE)
を入れて右にコピー,下にコピー。

QExcelで複数シートのデータを紐づけまとめる方法

Windows Excel 2007にて、恐らく多く使われる作業にて、類似質問を探したのですが、見つけられなかったので、どうぞお教えください。

複数シートにある下記のようなm列×n行のデータを、経年的に1シートにまとめています。
ID 項目A(2011) 項目B(2011) 項目C(2011)
1 ○ ○ ○
2 ○ ○ ○
5 ○ ○ ○
8 ○ ○ ○

これを次のようにIDで紐付けして、横に長いシートにまとめたいと思います。例のように、個人毎のIDは一意なのですが、調査年ごとに対象は多く重なるものの、同一ではありません(一緒なら、横に貼りつけるだけで済むのですが)。
ID 項目A(2011) 項目B(2011) 項目C(2011) 項目A(2012) 項目B(2012) 項目C(2012)
1 ○ ○ ○      × × ×
3 ○ ○ ○      × × ×
5 ○ ○ ○      × × ×
9 ○ ○ ○      × × ×

今は、行挿入でIDを手作業でそろえているのですが、数千の作業なので、めちゃくちゃ時間がかかります。Access2007もありTryしたのですが、目的が果たせませんでした。Accessで行うべきであれば、カテゴリーを変えて質問を改めさせていただきます。

ひとまず、Excelでこれを行う方法をご存じの方、お教えていただけませんでしょうか。
どうぞよろしくお願いします。

Windows Excel 2007にて、恐らく多く使われる作業にて、類似質問を探したのですが、見つけられなかったので、どうぞお教えください。

複数シートにある下記のようなm列×n行のデータを、経年的に1シートにまとめています。
ID 項目A(2011) 項目B(2011) 項目C(2011)
1 ○ ○ ○
2 ○ ○ ○
5 ○ ○ ○
8 ○ ○ ○

これを次のようにIDで紐付けして、横に長いシートにまとめたいと思います。例のように、個人毎のIDは一意...続きを読む

Aベストアンサー

項目A~Cのデータが数字なら統合の機能を利用するのが簡単です。

集計シートで「データ」「統合」で各シートのデータ範囲(必要なら大きめにデータ範囲)を「追加」して統合の基準で「上端行」と「左端列」にチェックを入れ「OK」します。

関数で対応したいなら、A2セル以下に各シートの重複の無いID番号を入力し(すべてのシートの項目名を1列にコピー貼り付けして「データ」「重複の削除」をして必要なら並べ替えで「A↓Z」をクリックしてください)、B1セルから右に各年度の項目A~Cの項目名を入力しておき、B2セルに以下のような式を入力し右方向に3つ下方向にオートフィルします(Sheet1のデータを引っ張ってくる場合)。

=IFERROR(VLOOKUP($A2,Sheet1!$A:$D,MATCH(B$1,Sheet1!$A$1:$D$1,0),0),"")

Qエクセルで、一致するデータを紐付けたい

Sheet1 
A列      B列    C列    D列
◯◯株式会社  1     担当者   日付    

D列の日付はまだ未決定です。

Sheet2、A列に◯◯株式会社とB列に決定した日付を日付が決定した段階で入力していきますので、

Sheet1のD列にSheet2、B列の同じ会社名で決定日を紐付け、Sheet1のD列に自動で日付が入るようにしたいのです。ご回答お願いします。

Aベストアンサー

1行目は見出しとします。
D2のセルへ
=IFERROR(VLOOKUP(A2,Sheet2!$A2:$B10000,2,FALSE),"")
と入力し、オートフィルで下の行へコピーします。
結果は添付の図のようになります。
尚、Sheet2のB列の日付が空白の場合、D列の日付は、1900/1/0と表示されてしまします。
これを空白で表示するために、D列全体を選択し、セルの書式設定を行います。
2016/12/31のように表示するなら、ユーザー定義で、
[=0]"";yyyy/m/d
のようにします。(添付の図を参照)
2016年12月31日のように表示するなら、ユーザー定義で、
[=0]"";yyyy"年"m"月"d"日"
のようにします。

QExcelで、データの紐付けを自動的にやりたい

携帯電話の請求額が今月だけ高かったので通話明細書を調べてみると、確かに通話時間の合計が多いのはわかりました。しかし、明細書には電話番号だけが表示され、どこにかけたの情報がありません。
Excel2003で通話明細書のシートを作成し、少し離れた別の列に、携帯電話から取り込んだ電話帳データ(電話番号と通話先が対になっている)を貼りつけました。これで、通話明細書の電話番号に対応する通話先は、同じシートの別の列に存在するという状態ができました。
私の力量でできるのは、オートフォーマットを使い、調べたい電話番号をスクロールさせて該当する通話先を突き止め、通話明細書の電話番号のとなりの列に貼り付ける作業を繰り返し手動で行う、というものです。通話時間の長いベスト10だけでも明らかにしようと思ったのですが、1件だけ突出したものがあっただけで、あとは通話時間2分~5分のものが延々と連なっています。およそ全部で800件ほどあります。やはり、通話時間の分析よりも、「どこに多くかけているか」を明らかにしたいのです。

Aベストアンサー

電話帳に登録されている人の誰に何回掛けたかが判れば良いんですよね?
それなら、J3セルに↓の式を入れて下までコピーして見てください。
=COUNTIF(A:A,I3)

この方が手っ取り早いです。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qリストからデータを紐付けしたい

エクセルで別シートのリストからデータを紐付けするには、
どのようにすればよろしいでしょうか?
関数でもVBAでも良いので教えてください。

リストのA列、B列に文字列が記入してあります。
Sheet1のB列の文字列を検索値として、
リストのA列の文字列と部分一致するものの横の列(B列)の値を
Sheet1のC列に紐付けしたいのですが、どのようにすればよろしいでしょうか?

※リストの「1AA111」という文字列とSheet1の「1AA111-G」という文字列の場合
   「1AA111」の箇所で紐付けしたい(図を参照下さい)

エクセルは2007,2010を使用しております。
よろしくお願い致します。

Aベストアンサー

こんばんは!
VBAでの一例です。

↓の画像のように左側Sheetが「Sheet1」というSheet名で元データがあるとします。
右側Sheet名は 「リスト」としています。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i As Long, k As Long
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("リスト")

Application.ScreenUpdating = False
wS1.Columns(3).ClearContents
For i = 3 To wS1.Cells(Rows.Count, 1).End(xlUp).Row '←Sheet1の3行目~A列最終行まで
For k = 1 To wS2.Cells(Rows.Count, 1).End(xlUp).Row '←「リスト」Sheetの1行目~A列最終行まで
If InStr(wS1.Cells(i, 2), wS2.Cells(k, 1)) > 0 Then
wS1.Cells(i, 3) = wS2.Cells(k, 2)
End If
Next k
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。m(_ _)m

こんばんは!
VBAでの一例です。

↓の画像のように左側Sheetが「Sheet1」というSheet名で元データがあるとします。
右側Sheet名は 「リスト」としています。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i As Long, k As Long
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Workshee...続きを読む

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング