• 締切済み

挿入、削除に影響されない引数にする方法

XP,Excel。例えばA1セルにデータを入れ、B1セルで「=A1」とか関数の引数等として引用しているとします。ここで、A1セルに例えば2行分のセルを「下方向にシフトする」で"挿入"すると、B1セルの式は「=A3」に変わります。関数の引数でも同様です。これを、A列で挿入しようが削除しようが他の列では「=A1」をそのままにしておく方法はないでしょうか?教えてください。

  • goo62
  • お礼率91% (195/214)

みんなの回答

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.3

#1です。 見事にやられてしまいました。 >私のこの質問の意味がお分かりになる筈です。 よくわかりました。私の早とちりですね。 >ぜひともこの機会に覚えてください。 ありがとうございます。ところで何をですか? 的外れで失礼致しました。

goo62
質問者

お礼

私の勉強に参加していただきありがとうございました。絶対参照については私も”絶対”だと思っていました。私が読んだ限りでは、参照セルの挿入・削除にまで触れて絶対参照(が絶対でないこと)を解説したテキスト類はありませんでした。この機会ですから、#2さんのヒントを基に数式を工夫してみましたので、ご参考まで。 =INDEX(A:A,ROW(),1) 関数の引数にも使えます。ただ列の移動(横方向へのシフト)についてはまだ??です。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.2

=INDEX(1:65536,1,1)

goo62
質問者

お礼

ありがとうございます。いいヒントになりました。問題は行・列の引数をドラグしても相対参照できないことです。工夫してみます。

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.1

はじめまして 「=A$1」 これでいけます。 行を変えても変わらないようにするには 「=$A1」 列にも行にも影響を受けないのが 「=$A$1」 「絶対参照」といいます。とても大切なことですので、ぜひともこの機会に覚えてください。 的外れでしたらごめんなさい。

goo62
質問者

補足

こういう回答が必ずあると思っていました。案の定です。実際あなたがB列にでもこの数式を入れて、A列で挿入・削除をやってみて下さい。 私のこの質問の意味がお分かりになる筈です。ぜひともこの機会に覚えてください。

関連するQ&A

  • Excel2007 セルを右方向に削除する方法

    例えば、Excelのデータで各セルに次のような入力があります。 A A A B C D A A B C D A B C D これを A A A B C D   A A B C D     A B C D というように、空白のセルを右方向に削除し、一番右に入力のあるセルの列にすべての行を揃えたいです。 500行以上あるデータなので、一気にできる方法を探しています。 セル選択後、削除する時に「左方向にシフト」や「上方向にシフト」はあっても、「右方向にシフト」がないため、データ処理に苦戦しています。 マクロの知識がないので、マクロを使わない方法(複雑すぎなければ関数でも・・・)があれば嬉しいです。 最終的には、 A B C D A B C D A B C D とまとめる予定のデータです。 拙い説明で申し訳ありませんが、 もし、ご存知の方がいらっしゃっいましたら、よろしくお願いいたします。

  • ExcelVBA Deleteの引数省略について

    アクセスありがとうございます。 ExcelVBAはちょこちょこ簡単なものを使っているのですが、 基本からみっちり勉強した事がないので、今、一から勉強しなおしています。 その中で、Deleteメソッドの引数を省略した場合のシフト方向について、 分からない所があり、質問させていただきました。 あるサイトで、セルの削除にはDeleteメソッドを使う、とあり、 引数を指定しない場合、セルの削除後、どの方向にシフトするか説明がありました。 以下、引用します。 >引数を指定しない場合、【行数 = 列数】の場合は削除後、上方向にシフトします。 >【行数 < 列数】の場合は左方向にシフトし、【行数 > 列数】の場合は >削除後、上方向にシフトします。 また、例として、下記のようにありました。 >'アクティブなシートのセルB1~D3の範囲の削除(行数>列数なので左方向にシフト) >Sub DeleteCell() > Range("B1:D4").Delete >End Sub 説明の中にある、範囲が間違っていますよね。 そして、説明では、「【行数 > 列数】の場合は、削除後、上方向にシフト」とあります。 ところが、例の中では、左と書かれている…。 仕方ないので、Excelに、上の例文を貼り付けて、実行してみました。 すると、左にシフトするのです。 あれ、じゃあ、説明文が間違っている??? 別のサイトを検索してみたら、 >省略した場合、セル範囲が縦長の場合には左方向に、 >横長か正方形の場合には上方向に移動します。 とあり、B1:D4は、横長なので、上方向になるはず…。 もう、訳がわかりません^^; 引数を省略しない方がいい事は分かっているんで、するつもりはないんですが、 このモヤモヤを解決したく、どこが間違っているのか ハッキリして欲しいと思うのです…。 拘るほどの事ではないのかもしれませんが、お分かりの方いらしたら、ご教授下さい。 よろしくお願いいたします。

  • Excelの行、列の左方向シフト、上方向シフト削除ができません。

    Excelの行、列の行全体、列全体の削除はできるのですが、左方向にシフト、上方向にシフトの削除が選択できずグレーになったままです。行、列の挿入も行全体、列全体は選択できるのですが、右方向にシフト、下方向にシフトの挿入ができません。 自分が作成したファイルではないので、どのように設定されているのかわかりません。わかるかた教えてください。

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • Excelでのセルの削除方法

    Excelで1つのセルを削除する際に、 「左方向にシフト」か「上方向にシフト」か「行全体」か「列全体」 を選択できると思うのですが、自分が削除を行うときは必ず『左方向にシフト』を使うので、デファルトでそれにチェックが付いていてほしいのですが、通常は『上方向にシフト』がデファルトになっています。。。 これは変更できないのでしょうか。 よろしくお願いします。 利用環境はMac10.4.9でExcel2004 Version 11.3.3です。

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • 空白セルの削除

    A列に得意先、B列に金額が入力されています B列の8行目と13行目が空白です この空白セルを対象にその行を削除する関数はありますか 要するに金額欄の空白セルを読み取りその行全体を削除する関数が知りたいのです よろしくご指導ください

  • Excelである行を挿入で他の行のずれ

     A列、B列にデータが入っていて、C列には「=if(A1<>B1,1,"")」のような式が入っています。すなわち、隣り合うA列とB列のデータが異なるときC列の該当行に1を表示し、あっている場合は空欄となるようにしてあります。B列のある行(例えばB10)を右クリックして「下方向にシフト」としますと、C列が影響を受けてしまい、「=if(A10<>B11,1,"")」のようになってしまいます。Bがシフトした分だけ、修正してくれちゃうんですね。  私がしたいのは、シフトした後であっても、A列とB列の同じ行を比較したいのです。B行の「下方向にシフト」の操作をしても、C行に影響を与えない方法がありましたら、お教えください。

  • エクセルマクロでのセルの削除、挿入

    A1:G20の表があります、A1:G17にデータが入っています、20行目は合計欄です。 ここでデータ面の任意のセルをアクティブにしアクティプセルとその右のセル2個をマクロで削除し上に詰めます。(B5がアクティブだとB5、C5、D5が削除) 当然合計欄の当該列のセルが上に移動します。その為18行でセル挿入を行い20行目に合計が表示されるマクロの記載を教えてください。よろしくお願いいたします。