• 締切済み

Excelについて教えてください。

質問(1) シート1でA列にチェックを入れた際、 シート2にB列とC列を自動的に表示させるような設定はできますか? やりたいことを簡単にまとめると以下のとおりです。 ■シート1                    ■シート2     A   B   C               A    B    C  1  ○   松  100円         1  松  100円  2       竹 200円 ⇒       2  梅  300円  3  ○   梅   300円 質問(2) 上記設定が可能だとしたら、同じブック内(シート1からシート2への反映)ではなく、 異なるブックへの反映(ブック1のシート1からブック2のシート1への反映)は可能でしょうか。      

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

難しい式を使う必要もありません。分かり易く簡単な方法は計算に負担も少ないのです。次のようにすればよいでしょう。初めに作業列を作ります。 例えばシート1のD1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",COUNTIF(A$1:A1,A1)) これでA列に○が有れば上から番号が表示されます。 この番号を利用してシート2を作成します。 例えばA1セルに次の式を入力してB1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$C,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(B1))) ブック1のシート1からブック2のシート1への反映とするのでしたらブック2のシート1のA1セルに入力する式で,上式の例えばSheet1!$D:$Dとなる部分についてはブック1のその範囲を直接に選択してすることで式を完成するようにすればよいでしょう。 例えばSheet1!$D:$Dは '[ブック1.xls]Sheet1'!$D:$D になりますね。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

回答No.3ですが,誤記がありました。 作成例: シート1:添付図上 A2に =IF(B2="","",COUNTA($B$2:B2)) の間違いです。失礼しました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

丁寧に作っていけば,ごく簡単な関数だけで別ブックだろうがなんだろうが簡単にできます。 手抜きしてカッコイーやり方でやりたいなら,いくらでもムズカシー方法もあります。 作成例。 シート1:添付図上 A2に =IF(B2="","",COUNTA($B$1:B1)) と記入して下向けにつるつるっとコピーしておく シート2:添付図下 A2: =IF(ROW(A1)>MAX(Sheet1!A:A),"",ROW(A1)) B2: =IF(A2="","",VLOOKUP(A2,Sheet1!A:D,3)) C2: =IF(A2="","",VLOOKUP(A2,Sheet1!A:D,4)) それぞれ下向けにコピーして埋めておく 同じブックでまずやってみてうまくできたら,うまくできたシート2のセルをそのままコピーして別ブックに貼り付け,各ブックを名前を付けて保存してみます。すると別ブック間ならどうしたらいいのかも,そこに出来ています。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>シート1でA列にチェックを入れた際、シート2にB列とC列を自動的に表示させるような設定はできますか? シート2に以下の式を入力して右方向に1つ、下方向に適当数オートフィルしてください。 =INDEX(Sheet1!B:B,SMALL(INDEX((Sheet1!$A$1:$A$100<>"○")*1000+ROW($A$1:$A$100),),ROW(A1)))&"" >上記設定が可能だとしたら、同じブック内(シート1からシート2への反映)ではなく、異なるブックへの反映(ブック1のシート1からブック2のシート1への反映)は可能でしょうか。 上記の数式を、他ブックを参照する数式にしてください。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 同一Bookでも別Bookでも方法は一緒になります。 ↓の画像で左側Book1・Sheet1に元データがあり、それをBook2・Sheet1に表示するようにしてみました。 Book2のA2セルに =IF(COUNTIF([Book1]Sheet1!$A:$A,"○")<ROW(A1),"",INDEX([Book1]Sheet1!B$1:B$1000,SMALL(IF([Book1]Sheet1!$A$1:$A$1000="○",ROW($A$1:$A$1000)),ROW(A1)))) これは配列数式になってしまいますので、もしこの画面からコピー&ペーストする場合は A2セルに貼り付け後、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。m(__)m

関連するQ&A