• ベストアンサー

EXCELでできますか?

シート1から、必要なデーターをシート2に表示させる方法はありますか? <シート1> 年│月│日│商品名│A店│B店│C店 ─ ─ ─ ─ ── ─ ─ ─ ─ 1│1│1 ●● │1 │1 │1 1│1│1 ×× │1 │2 │1 1│1│2 ●● │1 │1 │1 1│1│2 ▼▼ │1 │1 │1 <シート2> 年│月│日│商品名│A店│B店│C店 ─ ─ ─ ─ ── ─ ─ ─ ─ 1│1│1 ●● │1 │1 │1 1│1│2 ●● │1 │1 │1 <シート3> 年│月│日│商品名│A店│B店│C店 ─ ─ ─ ─ ── ─ ─ ─ ─ 1│1│1 ×× │1 │2 │1 というように、商品名ごとに分けて表示することは可能ですか?

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.7

1.sheet2に式「=Sheet1!A1」「=Sheet1!A2」‥でsheet1と同じものを作成しておきます。 2.sheet2でマクロ(商品別)を作成します。 ツールメニューからマクロ、新しいマクロの記録(マクロ名を商品別)、商品別分類、マクロを終了 3.sheet2でVBAを起動し alt+F11‥VBA起動 sheet2をダブルクリックしてコーディングは以下 Private Sub Worksheet_Activate() 商品別 End Sub

その他の回答 (6)

noname#262398
noname#262398
回答No.6

数式でやるなら、多少重くなるのは仕方が無いと思います。 シート2のA2=IF(ROW(A1)>COUNTIF(Sheet1!$D$1:$D$1000,"●●"),"",INDEX(Sheet1!A$1:A$1000,1/LARGE(INDEX((Sheet1!$D$1:$D$1000="●●")/ROW(A$1:A$1000),),ROW(A1)))) 右へ、下へコピー。 作業列を使えるなら、その方が良いですね。 H列を使えるとして、 シート1のH2=D2&"_"&COUNTIF(D$2:D2,D2) 下へコピー。 シート2のA2=IF(ROW(A1)>COUNTIF(Sheet1!$D$1:$D$1000,"●●"),"",INDEX(Sheet1!A$1:A$1000,MATCH("●●_"&ROW(A1),Sheet1!$H$1:$H$1000,0))) 右へ、下へコピー。

hanako0909
質問者

お礼

ありがとうございます。 皆様の意見大変参考になりました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆Sheet1   A  B  C   D    E   F   G 1 年 月 日 商品名 A店 B店 C店 2  1  1  1  ●●   1   1   1 3  1  1  1  ××   1   2   1 4  1  1  2  ●●   1   1   1 5  1  1  2  ▼▼   1   1   1 ◆Sheet2   A  B  C   D    E   F   G 1 ●● 2 年 月 日 商品名 A店 B店 C店 3  1  1  1  ●●   1   1   1 4  1  1  2  ●●   1   1   1 ◆Sheet2のA1に「商品名」を入力します A3=IF(ROW(A1)>COUNTIF(Sheet1!$D:$D,$A$1),"",INDEX(Sheet1!A:A,SMALL(INDEX(SUBSTITUTE(N(Sheet1!$D$1:$D$100=$A$1),0,10^5)*ROW($1:$100),),ROW(A1)))) ★右と下にコピー ★これで、A1の「商品名」を「××」にすれば、×× の内容が表示されます

hanako0909
質問者

お礼

ありがとうございます。 この商品名を入力すればよいというのも 提案にあがったんですがこれまた却下となりました・・・・。

noname#21506
noname#21506
回答No.4

データがシート1のA2からA5の行に入っていた場合 シート2のA2セルに以下の数式を設定し、縦横にコピー この式は配列数式のため、入力完了時にshift+ctrl+enterキーを同時押下 =IF(ROW($A1)-1<COUNTIF(Sheet1!$D$1:$D$5,"●●"),INDEX(Sheet1!A$1:A$5,SMALL(IF(Sheet1!$D$1:$D$5="●●",ROW(Sheet1!$A$1:$A$5),999),ROW($A1))),"") 以上の式が、下記URLに掲載されていました。

参考URL:
http://oshiete.coneco.net/kotaeru.php3?q=2506842
hanako0909
質問者

お礼

ありがとうございます。 この方法は、実は先ほど試したんですが・・・・ 数が少ない時には有効なんですけど・・・ データー量が、何百件となってくると重くなるのではないか?ということで却下になりました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.3

1) オートフィルターを使い、取り出したい商品名のデータだけを表示して、コピー&ペーストを行う。 2) 1)の方法をマクロの記録して、プロシージャを作成する。この後、プロシージャを修正して、汎用性のあるものに改造する 3)  商品名1に1000番代のIDナンバーをつけ、商品名2に2000番台のIDナンバーをつける 商品1のシートには  A2セルあたりから  =vlookup(1000+row()-1,sheet1!データ範囲,2,0) のような関数を入れて、下へコピーする など

hanako0909
質問者

お礼

3)確かに簡単ですね。 ありがとうございます。 これから試してみたいと思います。

hanako0909
質問者

補足

3)を試してみましたが、1│1│2 ●● │1 │1 │1 というように 1行を並べることができません。 何か、やり方が悪いようなんですが 何が原因なのでしょうか?

noname#31032
noname#31032
回答No.2

た・・・確かリアルタイム連結はできなかったと思います。 シート1のセルをシート2にコピペするのは可能だったと思いますが、シート1に入力したものがシート2に自動的に入力されるとかはできなかったかとおもいます。 あくまでファイル1とファイル2みたいな感じで、ばらばらにならないようにファイルにはさんだ紙1枚と2枚みたいな扱いだったかと・・・><

hanako0909
質問者

お礼

やはり、自動的には無理ですか・・・・ ありがとうございます。

  • linus3030
  • ベストアンサー率21% (217/1007)
回答No.1

シート1を作り それを2と3にコピー 2と3のセルA1を =シート1A1として値を広い このセルを選択コピーして すべてのセルに形式選択貼り付けで 数式 ではりつけると シート1の入力が 2 3に反映されるようになります。 あとはオートフィルで商品名のみを抽出

hanako0909
質問者

お礼

ありがとうございます。 フィルターをつかわずに直に反映させていきたいのですが・・・。 ご存知でしたらお願いいたします。

関連するQ&A