エクセル関数で他シート入力を自動表示する方法

このQ&Aのポイント
  • エクセルの関数により、1枚目のシートのD列でヒットを選んだ場合に、2枚目のシートにそのヒットを選んだ人のデータを自動的に表示することができます。
  • 1枚目のシートには選手の名前や球団が記載されており、D列にはヒットまたは三振を選ぶことができます。
  • 2枚目のシートには背番号、球団、選手名が記載されています。1枚目のシートでヒットが選ばれた場合、2枚目のシートに対応する選手のデータが自動的に表示されます。
回答を見る
  • ベストアンサー

エクセル 他シート入力 自動表示

エクセルの関数について教えてください。あまり詳しくありません。 シートが2つあります。1枚目のシートにデータがたくさん入っており、仮にデータを以下のとおりとします。  A   B    C    D イチロー 51  マリナーズ     松井   55  ヤンキース 岩村   1   レイズ ○○   ○   ○○○ D列はプルダウンでヒットor三振が選べるとします。 2枚目のシートは次のようになっているとします。  A(背番号) B(球団) C(選手名) このようなときに、1枚目のシートのD列プルダウンでヒットを選んだときにだけ、2枚目のシートにそのヒットを選んだ人のデータを自動的に表示できるようにできないでしょうか。 ご教示ください。

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

  • ベストアンサー
  • kokoko555
  • ベストアンサー率100% (2/2)
回答No.3

No2で回答した者です おっしゃってる意味がよくわかりませんが、数式は下の行にフィルして下さい 2枚目のシートには2行目から数式が入るため、1枚目のシートのデータも2行目から入力されている状態にして下さい 試してみられて上手くいかなかったのでしょうか? D2が空白なら2枚目シートには何も表示されず、D3が「ヒット」なら2枚目シートの3行目に1枚目シートのデータが表示されるとおもいますが・・・ 1枚目シートのD列が「ヒット」の場合のみ、2枚目シートの(1枚目と)同じ行にデータが表示されます そうなると「ヒット」ではないときは、何も表示しないように数式がなっているので空白行が多くなるため オートフィルタで空白行を表示しないようにしたらいいと思います

jimukan35
質問者

補足

すいません。<2枚目シートにオートフィルタ機能を使い空白行は表示しないようにする>というのをしっかり理解していませんでした。たしかにkokoko555さんがおっしゃるとおりできそうです。 しかし、質問の意図をなるべく簡潔に理解してもらおうと最初の質問で詳細に書かなかったのでいけないのですが、1枚目のデータには3000行以上のデータがあるのです(今後もどんどん増えていきます)。そうしますと2枚目のシートにも同じだけの行が必要かと? また、仮に自分だけの利用でしたらその仕組みをしっかり理解していればいいと思いますが、当該ファイルは共有ドライブにありまして私のほかにも2,3名(私よりエクセルの知識がないもの)利用するのです。そうしますとちょっと不便かなと・・・ ですので2枚目に1枚目と同じだけの行を作らずに、2枚目の上から表示できないものかと思った次第です。 もし違っていたらすいません。

その他の回答 (2)

  • kokoko555
  • ベストアンサー率100% (2/2)
回答No.2

はじめまして 単純な方法ですが 2枚目シート A1,B1,C1それぞれに見出しとなる項目入力する(後でフィルタを使うため) A2に=IF(Sheet1!$D2="ヒット",Sheet1!$B2,"") B2 =IF(Sheet1!$D2="ヒット",Sheet1!$C2,"") C2 =IF(Sheet1!$D2="ヒット",Sheet1!$A2,"") 1枚目シートのD列が”ヒット”ではない時は空白になるので 2枚目シートにオートフィルタ機能を使い空白行は表示しないようにする というのはどうでしょうか?

jimukan35
質問者

お礼

回答ありがとうございます。 この場合ですと、D2に最初にヒットが入ればいいですが、D2は空白のままD3が最初にヒットになる場合またはD4が最初の場合などに対応できなくないでしょうか?

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

D列をプルダウンで選ぶ場合も、人間がD列に入力する場合も変わりないことをしっかり知っておくこと。わざわざ書いているのは、差が有ると思っていないか。 ーーーー だからD列のセルの値が、「ヒット」に変わったとき、その行を 2枚目のシート(シート2)に追加すればよい。素直な考えで、これはVBAのChangeイベントで対処できる。しかしシート1でヒットだった行を三振に訂正したりすると処理が難しい。 一歩前の状態(セルの値)を割り出すのが難しいので。 D列変化の都度毎回リストのやり直しすれば出来るかもしれない。 ーー そういうことで関数が適当かと思う。 この質問は、抜き出し問題になるわけだ。 しかしエクセルの関数は、抜き出し問題は複雑になって難しい。 エクセル関数はデータ計算用が主で、行・列に関してセル・データ位置を変えるのは工夫がいる。 中間作業列を作って、やる方法をimogasi方式として、たくさん回答している。Googleで「imogasi方式」で照会すること。 その方法は、D列で、上から「ヒット」の値の行に連番を振る。 そしてこの連番とシート2の行番号を関連付けて、シート1から列データを採ってくる。INDEX関数・MATCH関数を利用。 シート1とシート2は項目列順序や数に違いが有るが、imogasi方式の場合、INDEX関数の式の一部(「引数)が応じて変わるだけで、差し支えない(難しくはならない)。 ただどんなやり方にしろ、初心者なら易しくは無い課題。

jimukan35
質問者

お礼

回答ありがとうございます。 imogasi方式ですか。。初耳です。一回調べてみます。 けれど初心者には易しくないのですか。。

関連するQ&A

  • エクセル関数を使った自動表示

    Excelで関数をどのように使えば下記のプログラムが作れるのか困っています。 Sheet1に、例えば A1のセルに"選手名" B1のセルに"チーム名"     A      B  1 イチロー マリナーズ  2 松井   ヤンキース     :     : のように記入されているSheet1を用意しておきます。 Sheet2でA1のセルに、Sheet1に記載されている選手名を入力したら B1のセルに"自動的に"チーム名が表示されるようにしたいのですが… よろしくお願い申し上げます。

  • 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)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。

  • エクセル 複数のシートに同じ操作をする

    データベースを作っています。 シート一枚に一件のデータです。 ですから、複数のシートで同じ並びに同じようなデータが入っています。 例えばシートAを基本にしてシートB、Cがあった場合 列a~dにデータがありましたが これを全部削除して他のデータを入れるという作業をする時に 列削除をすると削除後、選択状態は続いたままですよね。 シートAの列a~dに新しいデータを入れた場合も シートB,Cの列選択はまだ続いたままなので シートAの列a~dをコピーして あとはシートB,Cを選択してCTRL+Vするだけで データが入っていくので楽です。 で、ようやく質問なのですが 最後のシートB,Cの選択をいちいちしないでも 一気にBもCもペーストすることはできますでしょうか? 今はシートが二枚くらいなので問題ないですが シートが20枚とかになったら面倒だなと思いまして。 分かりにくい質問文で失礼します。 どなたかよろしくお願い致します。

  • Excel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

    Excel2000です。 Sheet1のA列・B列・C列・・・にデータが入っています。 Sheet2のA列・B列・C列・・・にデータが入っています。 Sheet1のA列とSheet2のA列は、似たようなデータが入っています。 Sheet1のB列とSheet2のB列も、同様です。 C列以降のデータは、シート間で全然関係ありません。 Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、 を知るには、どうすればよいですか。 C列以降の列のデータは、比較する際に使いません。 つまり、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB であるような行を知りたいのですが、 どうすればよいのでしょうか。

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

    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!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • エクセルシート間の照合について

    エクセルシート間で照合をしたいと思っています。 照合する項目は2つ。2つともあえばそのA列のデータを表示するというものです。 データは シート1(前年) A  B  C  D 1  田中 123 東京都・・ 5  佐藤 124 千葉県・・ 3  山本 128 埼玉県・・ シート2(今年) A  B  C  D   山本 128 埼玉県・・   佐藤 124 北海道・・   田中 123 東京都・・ C列とD列を照合し2つともあえばシート2のA列にシート1のA列のデータを入力する。なければ「なし」と入力できるようにしたいのです。 上の場合は山本のA列に「3」佐藤には「なし」田中には「1」と入るのうになればと思います。 入力されている列は同じですが順番はばらばらです。データ数は1万件を超えています。 どなたかアドバイスいただければと思います。よろしくお願いします。     

  • エクセル複数のシート集計で困っています。

    シート1のデータを ほかの複数のシートにそれぞれ集計しようと思うのですが、いくつかの箇所がうまくできません。お分かりになる方教えていただけないでしょうか。 シート1にデータがあります。     A   B   C    D 1  100   90   80   100      単価 2  もも  りんご ぶどう  リンゴ    名称 3  山梨  青森  長野  長野     適用 4   5    0    10    5       注文a 5   7    9     2    5       注文b シート2(4行目のデータ集計・注文b)    A    B   C     D 1  もも  5   100    山梨 2 3 ぶどう 10   80    長野 4 りんご  5   100   長野     シート1に注文数がある場合 シート2 シート3・・・それぞれB列に数量が自動で入るように設定しています。 数字が入った場合だけA列・C列・D列の内容がシート1のセルから自動で入るよう設定したいのですが、うまくできません。  (シート1のデータはいろいろ変わります。) どなたか、アドバイスいただけないでしょうか?よろしくお願いいたします。

  • 異なるシートに自動的に書き込みするには

    エクセルで、シート1・シート2があります。 シート1 B列 名前 C列 アドレス D列 年齢 E列 住所 とありまして、100人程作ってあります。 それを、 シート2に自動的に書き込まれるようにしたいです。 シート2には、 A列 名前 D列 アドレス G列 年齢 I列 住所 にしないとなりません。 (例) シート1のB1 に「名前」と入力すると  シート2のA1 に「名前」と自動入力 という形です。 宜しくお願いします。

  • 複数のシートを一つのシートにまとめる(エクセル)

    こんにちは 10日あるいは一週間毎に区切られた 複数のシートを一つのシートにまとめたいのですがうまくいきません。 sheet1、2にそれぞれ 列A 列B 列C があったとすると  列A 列B 列C 列D 列E 列F  と表示するようにするにはどうしたらいいですか?

  • 【エクセル】シートが分かれているデータを集める

    あるブックにシートが10シートあるとします。 これらのシートの同じ列を、別のシートにまとめたいです。 列には60行くらいのデータがあり、それぞれのシートの行数は同じです。 まとめるシートは、    A列        B列      C列        D列   シート1のA列、シート2のA列、シート3のA列、シート3のA列・・・ のようにしたいです。 関数などを試してみましたが、列設定ではなかなかうまくいかず、 すっきりと持ってくることができません。 知恵をお貸しいただけないでしょうか。 よろしくお願いいたします。

専門家に質問してみよう