参照元のセル位置を移動などで動かすと、参照先も「参照元の移動先のセル番地」に変更されますよね。
参照元の値が移動しても常に同じセル番地を参照するようにするにはどうしたらよろしいでしょうか。

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

A 回答 (9件)

INDIRECT 関数を使います。



A1 を常に参照したい場合は、

=INDIRECT("A1")

とします。
    • good
    • 0
この回答へのお礼

うまくいきました!大変助かりました。ありがとうございます。

お礼日時:2001/05/16 08:56

☆brogieさんへ


>私のExcelでは「=INDIRECT("A1") 」(s-marikoさんの回答)はA1を参照しているときは、移動してもA1を参照しています。
A1=1 B1=INDIRECT("A1")+5 なってるとして
INDIRECT関数を使って再計算されるまではA1は参照するセルを示すものではなく文字列と認識される為です。

>A列を移動してもその移動先の列の参照になってしまいます。これは私のExcelの設定のせいでしょうか?
↓で書いたのと同じような事ですがA列を切り取ったりした場合は他のセルとの関連性も失わずに
移動します。(従姉が結婚して名前が変わっても○○さんは従姉という関係であるのと同じ)
(この機能がないと列を挿入した場合など参照先が変わってしまうので参照させてる数式などを
全て修正しなくてはいけなくなってしまうので便利だと思います。)

移動(移ってしまったら元の場所に存在しないのが普通ですから)するのではなく
コピーして貼り付ける(元のセルは存在するので他のセルとの関連性は保持)
で、A列のデータを削除すれば結果的にはA1を移動した事になるのでは?
    • good
    • 0

>常に同じセル番地を参照するようにするにはどうしたらよろしいでしょうか


とあったので早とちりしてしまいました。

>A1を移動したとき、移動先を参照してしまうのではないでしょうか
A1=1 B1=A1+5 なってるとして
このA1のセルをD1に移動するとB1=D1+5になってしまうと言うことですね。

この場合$を付ける必要はありません。
A1をコピーして移動したいセルに移動させて元のセル(A1)を削除する。
こうするとA1のデータが変更されただけで参照先が移動した事にならないので
B1=A1+5 のままになるはずです。
    • good
    • 0

>A1を移動したとき、移動先を参照してしまうのではないでしょうか。


koutakaさんも書かれてますが・・・。
私もコピーして移動させて元を削除すれば問題ないと思います。
名前ほ定義した場合でも同じで、切り取ったて貼り付けたりというような移動のさせ方
をすれば移動元は存在しなかった事になるから・・。

INDIRECT関数の場合は文字列(A1)をINDIRECT関数を介して参照形式にしてるから
参照先が無くなった事にはならない。
    • good
    • 0

No.5 brogieさん


>しかし、A1をクリックして、F4をおすと$A$1となり、絶対参照になります。
>ここまではよいですが、A列を移動してもその移動先の列の参照になってしまいます。
>これは私のExcelの設定のせいでしょうか?

Excelの仕様です。

Excelのヘルプ(2000)には以下のように記載されています。
■セル内の数式の調整
セルを移動しても、移動したセルの数式は調整されません。
ただし、移動したセルを参照する数式は、新しい場所に移動したセルを参照するように調整されます。

■個人的な意見
循環参照などを回避する為だと思います。
移動した元の場所を参照しても意味がないし、もし元の位置を参照したければ
値や数式をコピーしてくればいいのではと考えます。

※[F4]キー押すと絶対参照⇔相対参照になるの初めて知りました。
    • good
    • 0

 このサイトなかなかタメに成ります。

何時も利用させてもらっています。
下には、2通りの回答が書かれていますが、私のExcelでは「=INDIRECT("A1") 」(s-marikoさんの回答)はA1を参照しているときは、移動してもA1を参照しています。

 しかし、A1をクリックして、F4をおすと$A$1となり、絶対参照になります。ここまではよいですが、A列を移動してもその移動先の列の参照になってしまいます。これは私のExcelの設定のせいでしょうか?

何だか質問者になってしまいました...
どうかよろしくお願いします、参考にさせてもらいますから。

この回答への補足

私が試してみると、絶対参照も相対参照も、INDIRECT関数だと移動してもA1を参照しました。
私のほうは納得しました。色々とありがとうございます。

補足日時:2001/05/16 08:50
    • good
    • 0

koutakaさんの回答が一部消えてるようなので補足します


1行だけ常に参照し列は増減させたい場合
A$1と入力 ←ここが抜けちゃってるみたいです。


Aとかアルファベットのは列で数字は行ですね。
固定したい方の左側に$を付ける。
常に同じセルを参照させるには両方付ける。

セルやセル範囲に名前を付けることも出来ますのでヘルプで「名前」とかで
調べてみると良いかも?
    • good
    • 0

セルの絶対参照を使います



たとえば ”セルA1”を常に参照したい場合は
$A$1 と入力します
A列だけ常に参照し行は増減させたい場合
$A1 と入力
1行だけ常に参照し列は増減させたい場合

■$を列または行の前に入力すればコピーしてもセルの番地は増減されません
    • good
    • 0

ヘルプの絶対参照より


特定の位置にあるセルを常に参照する絶対参照を使うことができます。絶対参照を作成するには、"$A$1" のように、文字や番号の前にドル記号 ($) を挿入します。

この回答への補足

ありがとうございます。絶対参照も試してみたのですが、A1を移動したとき、移動先を参照してしまうのではないでしょうか。

補足日時:2001/05/16 08:47
    • good
    • 0

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

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

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

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

Q○番地セルと△番地セルを参照し、一致していたらIFで結果を出したい

○番地セルと△番地セルを参照し、一致していたらIFで結果を出したい

エクセル2003です。

A列に名前、B列に学部、C列に点数があります。

7行目より、各部の合格点があります。

●Aさんが何学部かを参照させ、一致したら、更に平均点に届いている場合は○、そうでなければ×としたいです。

IFとANDの組み合わせをしようと、式を書いたのですが、エラーが出ます。

HPでは、数値でのネストが主で、文字の場合はどうするかを検索しても出ず困っています。

Aベストアンサー

No.1です!
投稿後もう一度質問文を読み返してみたのですが、
前回のように難しく考えなくても良いのですかね?

前回の数式はAさんの場合は「医学部」ですので、
医学部の人の平均点を割り出し、Aさんの点数がそれ以上でなおかつ7行目の表の医学部の点数以上であれば
「○」をそうでなければ「×」を表示するようにしていました。

もっと単純に7行目以下の表の学部の点数以上の場合は「○」そうでない場合は「×」とすれば良かったのですかね?

もしそうであれば前回の数式は無視して
D2セルは
=IF(C2>=VLOOKUP(B2,$A$8:$B$9,2,0),"○","×")
としてオートフィルで下へコピーしてみてください。

今回も外していたらごめんなさい。m(__)m

Q[Excel]参照先セルの自動調整された行サイズを参照元でも

Excelで参照先のセルに改行文字が入っていた場合。
参照元の行サイズを自動的に調整したいのですが、自動的になってくれません。
いちおう「セルの書式設定」→「配置」 で「折り返して全体を表示する」に
チェックを付け直せば調整されるのですが、毎回やる必要があるので
なんとか自動的にやってくれる方法はないでしょうか?

Aベストアンサー

既存の機能を使って全自動というのは難しいかと思います。
一般に、(単なる参照も含め)"数式で生成する値が変わった"という事態について、
Excelは無頓着ですから(頓着されたらそれはそれで困る)

>「セルの書式設定」→「配置」 で「折り返して全体を表示する」にチェックを付け直せば…
とありますが、
メニュー>書式>行にある「自動調整」ボタンをツールバーに出しておけば、
対象範囲を選択して1クリックするだけですみますので、多少は手間が省けそうです。
(対象範囲はあらかじめ「折り返して全体を表示する」設定になっているという前提です)

☆念のため、「自動調整」ボタンの出し方
ツール>ユーザー設定 をクリック
「ユーザー設定」ダイアログが出ますがこれは無視して、Excel本体のWindowの
書式>行 を順次クリック
「自動調整ボタン」をCtrlを押しながら任意のツールバー上にドラッグ

また、マクロも選択肢に入るならば、
Sub Worksheet_Activate()
 With ActiveSheet.Range("対象範囲")
  .WrapText = True
  .Rows.AutoFit
 End With
End Sub
みたいな処理で実質全自動になりますね。
(.WrapText = Trueは要らないのかも)
ただ、この処理のためだけにイベントドリブンマクロってもの大げさな感じがしますね。

既存の機能を使って全自動というのは難しいかと思います。
一般に、(単なる参照も含め)"数式で生成する値が変わった"という事態について、
Excelは無頓着ですから(頓着されたらそれはそれで困る)

>「セルの書式設定」→「配置」 で「折り返して全体を表示する」にチェックを付け直せば…
とありますが、
メニュー>書式>行にある「自動調整」ボタンをツールバーに出しておけば、
対象範囲を選択して1クリックするだけですみますので、多少は手間が省けそうです。
(対象範囲はあらかじめ「折り返して全体...続きを読む

Qエクセル複数シートへ参照。シート移動で参照セル移動

エクセル(2007または2010)で,複数シート(テンプレートは同じ)が同一シートを参照するようにしたいです。その際,シートが1つ後ろへ(タブが1つ右へ)移るたびに,参照元シート上の参照セルを1つ下の行へずらすようにしたいです。

複数(40枚)の個票を作るために,入力用のシートを作成して個票となる複数のシートが入力用シートを参照するようにしたいのです。

個票用のシートにある十数カ所の数式を手で修正しよう(十数カ所×40枚=数百カ所!!)としていますが,いい方法はないでしょうか。
ご存じの方がいらっしゃいましたら,お知恵をお借りしたいです。よろしくお願いいたします。

Aベストアンサー

>シートが1つ後ろへ(タブが1つ右へ)移るたびに,参照元シート上の参照セルを1つ下の行へずらす

原則としてエクセルには、自分がシート並びのどこにいるのかとか、そういう事を見る機能はありません。

●簡単な作成方法1
シート名に「Sheet1」「Sheet2」「Sheet3」と言った具合に番号を振っておいて、その番号で「何番目」のデータを持ってこさせる

●簡単な作成方法2
「目次シート」を用意、シートの名称、あるいは各シートに固有の記入内容(たとえば番号や名前といった)の一覧を用意、その隣に欲しいデータや欲しいデータの番号を列記しておいてVLOOKUP等で取ってこさせる



○マクロを使った方法

古いマクロを使う方法を1つご紹介しておきます。

手順:
数式タブの名前の定義▼を開始
 名前 SheetIndex
 参照範囲 =GET.DOCUMENT(87)
と記入し、登録する

#参考
任意のシートに
=sheetindex
と記入すると、自分が今何枚目にいるのか出てくる


それぞれのシートで、具体的にどこから何を持ってきたいのかさっぱり情報がありません。
具体的な数式の書き方とか説明できませんので、下記をテキトーに応用してください。

「目次」シートのA列を上から順に取ってきたい:
=INDEX(目次!A:A,sheetindex)

>シートが1つ後ろへ(タブが1つ右へ)移るたびに,参照元シート上の参照セルを1つ下の行へずらす

原則としてエクセルには、自分がシート並びのどこにいるのかとか、そういう事を見る機能はありません。

●簡単な作成方法1
シート名に「Sheet1」「Sheet2」「Sheet3」と言った具合に番号を振っておいて、その番号で「何番目」のデータを持ってこさせる

●簡単な作成方法2
「目次シート」を用意、シートの名称、あるいは各シートに固有の記入内容(たとえば番号や名前といった)の一覧を用意、その隣に欲しいデー...続きを読む

Qセル番地の入力されているセルを参照する方法を教えてください

それぞれaddress関数を使って、A1~A4にセル番地が入っています。A1とA3のセル番地を参照した数式を作りたいのですが、どうすればできるのでしょうか。教えてください。
 | A | B | C | D|
1 A4
2 A10
3 C4
4 C10

Aベストアンサー

具体的なシートでも表示してもらうと回答付きやすいとおもいますが、
Match関数とIndex関数の使い方紹介しておきます。
例えば
 A  B   C   D
  物流部 2月
  総務部 資材部 物流部 
1月 1000  4000  7000
2月 2000  5000  8000 
3月 3000  6000  9000
とA2~D5までの表があって 検索したい文字を B1とC1に入れて
D1セルに =INDEX(A2:D5,MATCH(C1,A2:A5,FALSE),MATCH(B1,A2:D2,FALSE))
と入れると8000と表示します。
別セルに =MATCH(C1,A2:A5,FALSE)に入れると C1の値がA2:A5で3番目にあるので 3 と出ます
MATCH(B1,A2:D2,FALSE)も同様に試してみてください。
INDEX関数は、INDEX(A2:D5,行方向の番号,列方向の番号)なので
指定した範囲で、行方向に検索、列方向に検索して交わったと事の値が出ます。

Q参照先セルの番地を固定したいのですが

EXCELです。参照先セルの番地を固定したいのですが、行を挿入したりすると参照元の数式が自動的に変更されてしまいます。

たとえばA1に=A10の式が入っていたとします。

5行目あたりに行を一行挿入します。
そうするとA1の式は=A11となってしまいます。

=$A$10としても同様に=$A$11となってしまいます。


常にAの10行目を参照したい場合どういう式を立てたらよいのでしょうか。

Aベストアンサー

一例です。
=INDEX(A:A,10)
=OFFSET($A$1,0,0,10)
=INDIRECT("A10")


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

おすすめ情報