プロが教えるわが家の防犯対策術!

エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。

sheet1を印刷用ページ、sheet2をデータ用ページとしています。
sheet2は頻繁に追加や削除をするのですが、単純な =sheet1!A1

ですと、
sheet2に追加してもsheet1に追加されたデータが反映されない。
sheet2の行を1つでも削除するとsheet1のその行は#REF!というエラーに。

という状態です。下記内容に対応できる関数はあるでしょうか。
sheet2がこのような時
行 
A あ
B い
C う
D え

sheet2Dに「お」を挿入すると
sheet1がこのようになるように。
行 
A あ
B い
C う
D お
E え

また、B行を削除したらsheet1が
行 
A あ
B う
C え
となるように。

そして、可能ならばコピーのドラッグで複製できるようにしたいのですが・・・


条件が色々ありますが、よろしくお願いします。

A 回答 (5件)

 Sheet1の適当なセル(どれでも良い)に以下の数式を入力してから、そのセルをコピーして、Sheet2のデータを反映させたい範囲に貼り付けると良いと思います。



=INDIRECT("Sheet2!R"&ROW()&"C"&COLUN(),FALSE)

 尚、最後の「FALSE」を省略して、

=INDIRECT("Sheet2!R"&ROW()&"C"&COLUN(),)

とした場合でも同様の結果が得られます。
    • good
    • 10

一例です。


sheet1の任意セルに以下の数式を貼り付け、縦横にコピー
=IF(OFFSET(Sheet2!$A$1,ROW(A1)-1,COLUMN(A1)-1)<>"",OFFSET(Sheet2!$A$1,ROW(A1)-1,COLUMN(A1)-1),"")
    • good
    • 1

例えばシート2でK列までの範囲で表を作成しているとして、それをシート1にそのもま表示させ、しかもシート2で行や列の削除や挿入があった場合にも対応できるようにするにはシート1のA1セルに次の式を入力して1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。



=IF(INDEX(Sheet2!$A:$K,ROW(A1),COLUMN(A1))=0,"",INDEX(Sheet2!$A:$K,ROW(A1),COLUMN(A1)))

これでシート1の1行目ばかりではなく他のセルについてもシート2の行や列の削除や挿入に対応させることができます。
    • good
    • 3

A,B,Cなどは行とは言わないで列と言います。


ところでシートA1セルには次の式を入力して右横方向にオートフィルドラッグすればよいでしょう。

=IF(INDEX(Sheet2!1:1,COLUMN(A1))=0,"",INDEX(Sheet2!1:1,COLUMN(A1)))
    • good
    • 0

Sheet2のA2セルを参照するなら、以下のようなINDIRECT関数を利用してください。



=INDIRECT("Sheet2!"&ADDRESS(ROW(A2),COLUMN(A2)))
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A