- ベストアンサー
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 というように、商品名ごとに分けて表示することは可能ですか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
1.sheet2に式「=Sheet1!A1」「=Sheet1!A2」‥でsheet1と同じものを作成しておきます。 2.sheet2でマクロ(商品別)を作成します。 ツールメニューからマクロ、新しいマクロの記録(マクロ名を商品別)、商品別分類、マクロを終了 3.sheet2でVBAを起動し alt+F11‥VBA起動 sheet2をダブルクリックしてコーディングは以下 Private Sub Worksheet_Activate() 商品別 End Sub
その他の回答 (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))) 右へ、下へコピー。
- maron--5
- ベストアンサー率36% (321/877)
◆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の「商品名」を「××」にすれば、×× の内容が表示されます
お礼
ありがとうございます。 この商品名を入力すればよいというのも 提案にあがったんですがこれまた却下となりました・・・・。
データがシート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に掲載されていました。
お礼
ありがとうございます。 この方法は、実は先ほど試したんですが・・・・ 数が少ない時には有効なんですけど・・・ データー量が、何百件となってくると重くなるのではないか?ということで却下になりました。
- 134
- ベストアンサー率27% (162/600)
1) オートフィルターを使い、取り出したい商品名のデータだけを表示して、コピー&ペーストを行う。 2) 1)の方法をマクロの記録して、プロシージャを作成する。この後、プロシージャを修正して、汎用性のあるものに改造する 3) 商品名1に1000番代のIDナンバーをつけ、商品名2に2000番台のIDナンバーをつける 商品1のシートには A2セルあたりから =vlookup(1000+row()-1,sheet1!データ範囲,2,0) のような関数を入れて、下へコピーする など
お礼
3)確かに簡単ですね。 ありがとうございます。 これから試してみたいと思います。
補足
3)を試してみましたが、1│1│2 ●● │1 │1 │1 というように 1行を並べることができません。 何か、やり方が悪いようなんですが 何が原因なのでしょうか?
た・・・確かリアルタイム連結はできなかったと思います。 シート1のセルをシート2にコピペするのは可能だったと思いますが、シート1に入力したものがシート2に自動的に入力されるとかはできなかったかとおもいます。 あくまでファイル1とファイル2みたいな感じで、ばらばらにならないようにファイルにはさんだ紙1枚と2枚みたいな扱いだったかと・・・><
お礼
やはり、自動的には無理ですか・・・・ ありがとうございます。
- linus3030
- ベストアンサー率21% (217/1007)
シート1を作り それを2と3にコピー 2と3のセルA1を =シート1A1として値を広い このセルを選択コピーして すべてのセルに形式選択貼り付けで 数式 ではりつけると シート1の入力が 2 3に反映されるようになります。 あとはオートフィルで商品名のみを抽出
お礼
ありがとうございます。 フィルターをつかわずに直に反映させていきたいのですが・・・。 ご存知でしたらお願いいたします。
お礼
ありがとうございます。 皆様の意見大変参考になりました。