人生のプチ美学を教えてください!!

エクセル2007に関して質問です。
「シート元」のデータを「シート参照」で参照しております。
データ参照は以下の通りです。
「シート参照」のA1のセルに「=シート元!A1」
「シート参照」のB1のセルに「=シート元!B1」
「シート参照」のC1のセルに「=シート元!C1」



というデータがあり、これをシート元A10から新たに
シート参照A1のセルに「シート元!A10」11、12、13・・
という風にデータを毎回更新しています。
その度に、「シート参照」の式を手打ちで直しているのですが、
これを、「シート参照A1」のセルを直すだけで、
B1、C1のセルも自動的に、シート元!10、11と
参照するようにしたいのです。
シート参照B1のセルに「=シート参照A1+1」と入れてみましたが、出来ませんでした。
この様な参照は、可能なのでしょうか?

A 回答 (4件)

同じように INDIRECT 関数と作業セルを使えば簡単にできますよ!



例えば X1 を作業セルとして、X1 に 1 と入力しておきます。

A1 =INDIRECT("シート元!$A"&$X$1)
B1 =INDIRECT("シート元!$B"&$X$1+1)
C1 =INDIRECT("シート元!$C"&$X$1+2)

としておけば、X1 の内容を 10 とすれば、参照先は全部切り替わります。


ご質問のような参照式そのものの更新は、私の知識ではVBAを使わずにはできないので、以上のような代案を提案させていただいた次第です。
    • good
    • 0
この回答へのお礼

ありがとうございます!できました!

お礼日時:2008/11/06 17:50

質問の内容がわかりにくかったが、下記でよいですか。


シート元のA列に1から連続番号を入れておく(わかりやすくするため)
ーー
シート参照シートのA1セルに、シート元シートのA列のスタート行番号に当たる数字を入れる。
A2に=INDIRECT("シート元!A" &ROW()-1+$A$1-1)と入れて、下方向に式を複写。
シート参照シートで
A1を1とするとき、A1:A8で言えば
1 <-入力
1 <-関数式で出る値。以下行同じ
2
3
4
5
6
7
ーー
A1を14と入れると、A1:A8は
14 <-入力
14 <-関数式で出る値。以下行同じ
15
16
17
18
19
20
になる。
A列だけで言えばこれでよいですか。
各列でいつも($B$1など見ないで)$A$1を見るなら
B列では=INDIRECT("シート元!B" &ROW()-1+$A$1-1)

この回答への補足

説明が分かりづらくてすみません。
最初は
A1=シート元!$A1
B1=シート元!$A2
C1=シート元!$A3
となっていて、これを、
A1=シート元!$A10 とした場合に、
B1=シート元!$A11←勝手にA1の式+1
C1=シート元!$A12←勝手にA1の式+2
という感じで、A1だけいじれば、いいようにしたいのです。
現在は、A1もB1もC1のセルも全て手作業で更新しています。
説明が分かり辛くてすみません。

補足日時:2008/11/06 15:39
    • good
    • 0
この回答へのお礼

わかりづらい質問に答えて頂き、ありがとうございました。
なんとかできました。

お礼日時:2008/11/06 17:51

>シート参照A1のセルに「シート元!A10」11、12、13・・


>という風にデータを毎回更新しています。
ひょっとして、データのシートの最後の行を表示したいということでしょうか。
=INDEX(シート元!A:A,COUNTA(シート元!A:A))
といれて右へコピィしておけば最後の行です。
=INDEX(シート元!A:A,COUNTA(シート元!A:A)-1) で最後から2行目

ほか
A1セルに 10とか表示希望する行番号いれて
B1に =INDEX(シート元!A:A,$A1) 右へコピィしておけば、A1の数値を変えるだけになりますが。

この回答への補足

説明が分かりづらくてすみません。
最初は
A1=シート元!$A1
B1=シート元!$A2
C1=シート元!$A3
となっていて、これを、
A1=シート元!$A10 とした場合に、
B1=シート元!$A11←勝手にA1の式+1
C1=シート元!$A12←勝手にA1の式+2
という感じで、A1だけいじればいいようにしたいのです。
現在は、A1もB1もC1のセルも全て手作業で更新しています。
説明が分かり辛くてすみません。

補足日時:2008/11/06 15:40
    • good
    • 0
この回答へのお礼

丁寧に答えて頂き、ありがとうございました。
無事にできました。

お礼日時:2008/11/06 17:51

ご質問の意図を以下のように理解しました。



最初は、
A1 =シート元!A1
B1 =シート元!B1
C1 =シート元!C1
と設定されている。

一カ所数字を変えるだけで、
A1 =シート元!A10
B1 =シート元!B10
C1 =シート元!C10

A1 =シート元!A11
B1 =シート元!B11
C1 =シート元!C11
となるようにしたい。

以上のようなことで合っていますか?
違っていたら補足等してください。

以上のようなことであれば、
作業用セルを使えば簡単にできると思います。
適当なセルに「1」と入力しておきます。(セルX1とでもしましょう)

A1 =INDIRECT("シート元!A"&X1)
B1 =INDIRECT("シート元!B"&X1)
C1 =INDIRECT("シート元!C"&X1)
こんな感じで、X1セルを更新すれば、参照先が変わります。

ご質問の内容とずれていたら、補足していただければ良いのですが、INDIRECT関数をうまく使えばきっと解決すると思うので、この回答を参考に考えてもらえれば幸いです。

この回答への補足

説明が分かりづらくてすみません。
最初は
A1=シート元!$A1
B1=シート元!$A2
C1=シート元!$A3
となっていて、これを、
A1=シート元!$A10 とした場合に、
B1=シート元!$A11←勝手にA1の式+1
C1=シート元!$A12←勝手にA1の式+2
という感じで、A1だけいじれば、いいようにしたいのです。
現在は、A1もB1もC1のセルも全て手作業で更新しています。
説明が分かり辛くてすみません。

補足日時:2008/11/06 15:17
    • good
    • 0

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