• ベストアンサー

「エクセル」で「アクセス」のようにデータを呼び出したい(2)

「Excel2000」を使用しています。 NO.608938で質問を させて頂いたのですが、 それを踏まえた新たな疑問が 出てきたので、前回の質問文を引用させて 頂きます。 >たとえば住所録で、 >「sheet1」の >1行目にリストのタイトルが入っていて、 >A2、A3…に通し番号、 >B2、B3…に名前、 >C2、C3…に住所、 >D2、D3…に電話番号 >が入っているとします。 >その時、「sheet2」の >(たとえば)A2に >「sheet1のA2」に入っている通し番号を入力すれば、 >その行に入力されている名前や住所や電話番号が、 >任意のセル(たとえばD10、C8、C9)に表示される… >といったことは可能でしょうか? …との質問に、VLOOKUPを使う方法を 教えて頂いたのですが、さらにもう一歩進んで… たとえば同一人物(名前、住所等同じ)に 同じ通し番号をつけた場合に、 その人が受け持っている 複数の得意先の名前(E2、E3…)や 住所(F2、F3…) を、Sheet2にまとめて表示させることは 出来るのでしょうか? 分かりにくい説明ですみませんが… たとえば、番号「1」番の「田中太郎」さんが A2、A3、に入力されていて、 E2に「○○商事」、E3に「○○物産」(Fに住所) となっていた場合、Sheet2に「1」と入力して 「田中太郎」さんを呼び出すと同時に、 得意先の一覧と住所も表示させることは 出来るでしょうか? 「同時に」でなくても構わないので、 何か良い方法がありましたらお教え下さい。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 番号をA2に入力し、得意先をA3~、住所をB3~その隣へ表示させるとします。 A3を選択し、数式バーに、 =IF(COUNTIF(Sheet1!$A$2:$A$11,$A$2)<ROW(A1),"",INDEX(Sheet1!E$2:E$11,SMALL(IF(Sheet1!$A$2:$A$11=$A$2,ROW(Sheet1!$A$2:$A$11),65537),ROW(A1))-1)) と入力して、まだ数式バーにカーソルがある状態で、[Ctrl]と[Shift]を推しながら[Enter]を押して決定します。 (数式の両端に「{}」が付いて配列数式になります。) そうしたら、これをB3へコピーし、さらに下の行へ十分の行数(Sheet1のデータ数で十分)コピーします。 なお、Sheet1の範囲は2~11行になっているので適宜変更して下さい。

mami0810
質問者

お礼

お礼が遅くなってすみません。 式の意味はほとんど理解出来ませんでしたが(^-^;) なんとか無事表を完成させることが出来ました。 難しそうな関数ですが、 エクセルってこういうことも出来るんですね。 回答、ありがとうございました。

その他の回答 (4)

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.5

#4です。 もうひとつ補足を・・・。 検索する番号は、Sheet2のA2に入力してください。 大事なことを忘れていました。(^_^;)

mami0810
質問者

お礼

何度も書き込み、ありがとうございました。 遅くなりましたが、 なんとか無事、表を完成させることが 出来ました。 少し関数も勉強してみようと思います。 回答、ありがとうございました。

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.4

#3です。 失礼しました。 >E2に「○○商事」、E3に「○○物産」(Fに住所) でしたね。 Sheet1の作業列にG列をあてるとして、G列に前記の数式をいれ、Sheet2には、 =IF(COUNT(Sheet1!$G$2:$G$100)>ROW()-3,INDEX(Sheet1!A$1:A$100,MATCH(ROW()-2,Sheet1!$G$1:$G$100,0),1),"") を入れてみてください。(前記の数式のFをGに変えただけです。) なお、Sheet1のA列は、ソートされていなくても大丈夫です。

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.3

Sheet1に作業列を設ける必要がありますが、それでもよろしければ。 Sheet1のF1に、 =IF(A1=Sheet2!$A$2,COUNTIF(Sheet1!A$1:A1,Sheet2!$A$2),"") を入れて、下へリストの行分オートフィル。 Sheet2のA3に、 =IF(COUNT(Sheet1!$F$2:$F$100)>ROW()-3,INDEX(Sheet1!A$1:A$100,MATCH(ROW()-2,Sheet1!$F$1:$F$100,0),1),"") を入れて、右へ必要な列までオートフィル。 下へ必要な行までオートフィル。 この関数では100行までの対応なので、必要に応じて式中の100の部分を書き換えてください。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

前回の質問ででた回答は、  =VLOOKUP(A2,Sheet1!A2:D5,2) のような形でしたよね。 この最後の「2」という数字を、 「3」とか「4」に変更した式を、 氏名の隣の列にでも入力してみてください。 (例)  =VLOOKUP(A2,Sheet1!A2:D5,3)  =VLOOKUP(A2,Sheet1!A2:D5,4) このことについては、 前回の質問の回答者の方が、丁寧に解説してくださっているようですが^^;。 ちゃんとお読みになりましたか?

mami0810
質問者

お礼

なんとか無事表を完成させることが 出来ました。 回答、ありがとうございました。

mami0810
質問者

補足

すみません。 私の説明の仕方が悪かったですね。 前回の回答は理解しているのですが、 この方法だと一つの番号に対して、 一つの項目(名前、住所など)から 一つのデータしか 表示出来ないですよね? 今度は、一つの番号に対して、 一つの項目(得意先名)から 該当する全てのデータ(複数)を 呼び出したいのですが、 どうすれば良いでしょうか?

関連するQ&A

  • 「エクセル」で、「アクセス」のようにデータを呼び出したい

    「Excel2000」を使用しています。 少し、ややこしいのですが… たとえば住所録で、 「sheet1」の 1行目にリストのタイトルが入っていて、 A2、A3…に通し番号、 B2、B3…に名前、 C2、C3…に住所、 D2、D3…に電話番号 が入っているとします。 その時、「sheet2」の (たとえば)A2に 「sheet1のA2」に入っている通し番号を入力すれば、 その行に入力されている名前や住所や電話番号が、 任意のセル(たとえばD10、C8、C9)に表示される… といったことは可能でしょうか? こういったことは「Access」が 得意なんだと思いますが、なんとか エクセルで出来ないものでしょうか? マクロなどを使うのでしょうか? マクロはほとんど触ったことがないのですが、 チャレンジしてみますので お教え願えませんでしょうか。

  • Excel,VBA シートの自動作成、データ

    Sheet 1 に住所録 Sheet 2~50までに同じフォーマットで A  B  C~E F~H No. 名前 S~L S~L と並んでいてA4から名前 C~の列には各数量が50行ほど入力されています。 Sheet 2~50 までを名前ごとにまとめたSheet を自動で作成したいです。 Sheet1とSheet2~50の名前順は同じです。 例 Sheet51 シート名 Aさん    DEF列    SML 1行目1,2,3(Sheet2AさんのC~E数量) 2行目2,2,2(Sheet2AさんのF~G数量) 3行目2,2,2(Sheet3AさんのC~E数量) 4行目4,4,4(Sheet3AさんのF~G数量) 同じようにSheet 53 Bさん となるようにループする方法をご教授ください。 よろしくお願い致します。

  • Excelで勤怠管理表を作っています。

    以下のようにSheet2で1名に対し、5行使って勤怠を管理しています。   A  B  C  D  E  F  G  ・・・ 1      7/1 7/2 7/3 7/4 7/5 ・・・ ------------------------------------------ 2   予定 8  8  4     8  ・・・ 3    実働 8  0  4     8  ・・・ 4 田中                 ・・・ 5                    ・・・ 6                    ・・・ ------------------------------------------ 7   予定    8  8  8  8  ・・・ 8   実働    8  8  8  8  ・・・ 9 佐藤                 ・・・ 10                   ・・・ 11                   ・・・ ------------------------------------------ A2~A6、A7~A11は結合されており、別シート(Sheet1)から VLOOKUPで名前を自動表示させています。 数字は勤務時間で、空欄は公休日です。 このシートの勤怠部分を別シート(Sheet3)で名前に紐付けて 取り出したいのですが、自分の知識ではVLOOKUPが使えなくて 困っています。 Sheet3 以下のようにSheet2で1名に対し、5行使って勤怠を管理しています。   A  B  C  D  E  F  G  ・・・ 1      7/1 7/2 7/3 7/4 7/5 ・・・ ------------------------------------------ 2 田中 予定 8  8  4     8  ・・・ 3    実働 8  0  4     8  ・・・ ------------------------------------------ 4 佐藤 予定    8  8  8  8  ・・・ 5    実働    8  8  8  8  ・・・ ------------------------------------------ ちょっとわかりにくいですが、A2~A3、A4~A5は結合されています。 ・Sheet3のA2に田中と手入力すると、Sheet3のC2~G3に、Sheet2のC2~G3を表示。 ・Sheet3のA4に佐藤と手入力すると、Sheet3のC4~G5に、Sheet2のC7~G8を表示。 ・Sheet3のA2に佐藤と手入力した場合は、Sheet3のC2~G3に、Sheet2のC7~G8を表示。 というようにしたいのです。 Excelをあまり触った事のない社員も入力をするため、参照式にすると退職時に列や行を削除され、エラーが起こってしまうので、名前に紐付けたいのです。 なにかいい方法はありませんでしょうか。

  • Excel シート間のデータの照合

    Excelで、シート間のお客様データ(だいたい各1万件)を照合します。下記は現在の照合方法ですが、これでは時間がかかるうえ手作業が多く発生しミスにつながります。頻繁に行う作業なので、関数でも、マクロでも、とにかくもう少し簡単にできる方法がありましたら、どうぞご教授ください。よろしくお願いします!! 【目的】 シート「sheet2008」には2008年度のデータ。シート「sheet2007」には「sheet2008」と同じ形式の2007年度のデータが入っています。シート「sheet2008」に、そのお客様の2007年度の担当営業マンを表示させたいのです。 【例】 列A(電話番号): 011-231-1112 列B(名前):佐藤 一郎 列C(住所):北海道札幌市中央区北1-1-1 列D(担当営業マン):鈴木 新規の列(2007年度の担当営業マン):鈴木  ・「sheet2008」「sheet2007」はほぼ同じデータですが、一部のお客様は名前が変わっていたり、住所が変わっていたりします。  ・「sheet2007」にないお客様が「sheet2008」にあったり、その逆があったりして、各シートのデータ件数は一致しません。  ・名前が同じでも住所が違うデータ、電話番号が同じでも担当営業マンが違うデータは別者として扱います。  ・「顧客ID」のような“必ずユニークな情報”は存在しません。 【現在の照合方法】 (1)「sheet2008」の各列の前に空白列を挿入する。  (データの1行目はタイトル行…B1:電話番号/D1:名前/F:住所/H:担当営業マン)  (データの2行目以降はデータ)     列A(空白行):     列B(空白行): 011-231-1112     列C(空白行):     列D(名前):佐藤 一郎     列E(空白行):     列F(住所):北海道札幌市中央区北1-1-1     列G(空白行):     列H(担当営業マン):鈴木 (2)「sheet2007」を列Aの電話番号で昇順に並べ替える。 (3)「sheet2008」の電話番号が「sheet2007」にあるかを調べる。     A2:「=IF(B2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,1,0)),"○","▲")」 (4)(3)で調べた「sheet2008」の電話番号と同じ行にある名前/住所が「sheet2007」にあるかを調べる。     C2:「=IF(D2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,2,0)),"○","▲")」     E2:「=IF(F2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,3,0)),"○","▲")」 (5)電話番号/名前/住所がすべて一致するデータについて、「sheet2007」にある担当営業マンの値を列Gに表示させる。     G2:「=IF((AND(A2="○",C2="○",E2="○"))=TRUE,(VLOOKUP($B2,Sheet2007!$A:$D,4,0)),"▲") (6)"▲"やエラー値で表示される計算結果について、目視で確認する。 (終了)

  • 番号入力するとデーターから自動的に該当に入力できる?

    下記例の入力したいシートに種類番号を入力すると、別シートの内容から検索して最初の入力したいシートの名前・住所欄に自動的に入力出来るようにできたらいいなと考ええています、そんなことが出来るでしょうか? 例■入力したいシート    A    B  C D E F 1種類番号 3 2名前   ううう  3住所   ccc 4 ■データシート    A    B    C  D E F 1種類番号 名前  住所 2 1    あああ aaa 3 2    いいい  bbb 4 3    ううう   ccc 5 4    えええ   ddd

  • エクセルでデータ抽出

    エクセル初心者です。 エクセルでに次のような表を作っております。 (Sheet1) 担当 会社 郵便番号 住所 菊地 A社 0000000 ○○○○ 菊地 B社 0000000 ○○○○ 菊地 C社 0000000 ○○○○ 田中 D社 0000000 ○○○○ 田中 E社 0000000 ○○○○ 山本 F社 0000000 ○○○○ 山本 G社 0000000 ○○○○        ・        ・        ・ と800件くらいあるのですが、 これを 別シート(Sheet2)で名前を菊地と入力すると菊地のデータが一覧で出るようにしたいのですが、どうしたらよいでしょうか。 できれば、マクロを使わずに関数でやりたいです。 VLOOKUPかな?と思い、いろいろ調べたのですが、抽出したいデータが複数あるので、悩んでおります。 すみませんが、どなたかご指導お願い致します。

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

  • エクセル2000でのデータ作成で・・

    顧客管理のデータを入力しています。  月日 顧客名   数量 累計 担当者 コード    欄外  2/14 ○○○    1    1  田中   A       1  2/14 ○○○    1    2  田中   B      2  2/14 ○○○    2   4  鈴木          1  2/15 ○○○    2   6  鈴木   C      2  こんな感じだとします。 累計にはIF(ISBLANK(C3),"",D2+C3)のような式が入ってます。  コードAと空欄のものと、BとCとの2つの表に分けたいと します。シート1には全体の表を、シート2にAと空欄、シート3に BとCを表示したい時はどうしたらいいでしょうか?  新しいデータはシート1にどんどん入力したいのです。 シート2とシート3それぞれの累計と通番号も付けたい場合、 どうやるのが一番でしょうか・・。  今はシート1の欄外に1と2と入力してシート2に =IF(シート1!H1=1,シート1!A1,"") と入れています。  そうするとどうしても空白の行ができてしまい、 累計の演算式もエラーが出ます。行削除して、 通番号を付け直していますが、他に一発で隙間なく シート2,3へ転記され、各シートごとの累計を出す方法が ありましたらおしえてください。

  • ExcelのVLOOKUPを使った自動表示

    昨日も似たような質問をしたのですが、新たに困った事が出てきたので 質問します。 Sheet1のセルに例えば下記のようにA列に番号、B列に苗字、C列に名前     A  B   C  1  1  山田 太郎  2  2  田中 一郎  :  :  :   : と記載されていて、 Sheet2のセルB1に苗字、C1に名前を入力したらA1に自動的にその人の 番号が表示されるようにしたいのですが…。 VLOOKUP関数をうまく使えば出来るのでしょうか?? よろしくお願いいたします。

  • エクセル並べ替え教えてください

    エクセルに詳しい方教えてください、お願いします。 シート1のA1セルに名前B1に住所C1に・・2行目以降も同じようにデータを入力し 各列の最後に移し変えたい行データに○を入力したものを、丸印の行データのみを、シート2の1行目から順番に移し変えが出来るようにしたいのですが    A    B    C    D    E 1 名前  住所 電話  データ   ○ 2 3                      ○ 4 1行目と3行目の○をつけた行データを別のシートの1行目、2行目と順番に移し変える方法を教えてください。 よろしくお願いします。

専門家に質問してみよう