専門家に聞いた!繰り返す痔の原因は!? >>

以下の説明で質問を理解していただけるとありがたいのですが...^^;

Sheet1のA1~A3に、1,2,3というデータが入っているとします。

これを、Sheet2のA1~C1に参照として表示するため、
A1 = 'Sheet1'!$A$1
B1 = 'Sheet1'!$A$2
C1 = 'Sheet1'!$A$3
のように入れると、Sheet2のA1には1、B2には2、C1には3が(ちゃんと)入ります。

ところが、Sheet1のA1のデータを「切り取り」→ A3に挿入すると、
Sheet2の内容が
A1 = 'Sheet1'!$A$2
B1 = 'Sheet1'!$A$1
C1 = 'Sheet1'!$A$3
のように勝手に変わってしまい、Sheet1のデータを入れ替えてもSheet2のデータの並びが最初とまったく変わりません。

Sheet1のデータの並びが変わっても、Sheet2のA1には常に「Sheet1のA1のデータ」が表示されるようにしたいのですが、どうすればいいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>Sheet1のA1~A3に、1,2,3というデータが入っているとします。


>これを、Sheet2のA1~C1に参照として表示するため
ということですから、
回答番号:No.2 KURUMITOさんの式を改造して
Sheet2のA1に
=INDEX(Sheet1!$A:$A,COLUMN(A1))
A1を、~C1までコピーですね。

INDIRECT関数の場合
Sheet2のA1に
=INDIRECT("'Sheet1'!$A$"&COLUMN(A1))
となります。
A1を、~C1までコピーですね。
    • good
    • 0
この回答へのお礼

xls88さん、KURIMOTOさん、
早速の回答をありがとうございました。
INDIRECT関数というのがあったんですね。
おかげさまで、私のやりたいことが実現しました。
ありがとうございました。

お礼日時:2010/01/05 10:53

次のような式をシート2のA1セルに入力してA3セルまでドラッグコピーしてもよいでしょう。


=INDEX(Sheet1!A:A,ROW(A1))
    • good
    • 0

INDIRECT関数を使えばどうでしょうか。



Sheet2
A1 =INDIRECT("'Sheet1'!$A$1")
B1 =INDIRECT("'Sheet1'!$A$2")
C1 =INDIRECT("'Sheet1'!$A$3")
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q別シートのセルを絶対参照にする

office2007、Excelで別シートのセルを絶対参照する方法を教えて下さい。
セルに「=シート名セル番地」を力した場合は、
セル番地を$で絶対参照にしても
参照先シートのその上に行を挿入すると
$A$5を指定していても行を挿入した場合は
自動的に$A$6になってしまいます。
別シートに行を挿入しても参照先のセルを固定する方法を教えて下さい。

Aベストアンサー

INDIRECT関数なら、文字列として範囲を指定できるので、行挿入や列挿入で勝手に指定範囲が変わることはありません。

例:
 INDIRECT(参照文字列,参照形式)
 と、使います。
 =INDIRECT("Sheet1!A1",TRUE)


※ INDIRECT関数の詳細は Excelのヘルプや解説サイトなどで確認してください。

QEXCEL シート間 相対セル参照のハズが、絶対に変わってしまう

シートAのあるエリアのセルを
シートBにて参照しています。
相対にてセル参照を作成したものですが、
日を置いて確認したところ絶対に変わってしまいました。

これでは他人に使用してもらうことができず困っています。

計算式の入ったセルを保護したのですがそれと何か関係があるのでしょうか?

Aベストアンサー

>この手順により シート2の「A1」セルには “ =Sheet1!A1 ” と記>述されます。
>絶対参照の場合、“=”の後、「F4」を押せばよいのでしょうか?
>追加でご教授頂ければ幸いです。

念のため、この段階で「F4」を押してみましたか?
この「F4」キーを押すごとに“ =Sheet1!A1 ”の「A1」の
部分が「=Sheet1!$A$1」「=Sheet1!A$1」「=Sheet1!$A1」「=Sheet1!A1」と変化することを確認してみてください。。

百聞は一見にしかず、ですよ~。

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。


このカテゴリの人気Q&Aランキング