• ベストアンサー

エクセルの相対参照について

お世話になります。 以下の例について教えてください。 C1 のセルに●●+▲▲ という数式を入力しておく B2 が空欄なら C2 は空欄にする。 B2 に何か入力された場合、C1の数式を複写(相対参照)してC2 に計算結果を出す。 というようにしたい。 この場合、C2 のセルの =IF(B2="","",■■■■)   ■■■■にはどう入力すればよいでしょうか? 毎回データ数が違うので、フィルハンドル使って伸ばさなくてもいいようにしたいのです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • himehime
  • ベストアンサー率37% (133/354)
回答No.4

えーと、やりたいことがよくわかっていないんですが、出納帳簿なんですよね? 多分、ISBLANK関数でいけると思います。 (ISBLANK関数の説明は、ヘルプみてください。) 式を二つ以上作る必要出ると思いますが。 えーと、すみません。私が使っている出納簿の式、そのままなんですが。 B列に日付、C列に曜日、F列に、入金(繰越金でもいけると思います。)G列に出勤が入っています。 で、その項目名は2行目から始まっています。 で、H3に、残高という項目名があって、 H4に、以下の式を入れてあります。 =IF(ISBLANK(B3)=FALSE,F4-G4,"") (項目名が入っているところですからね。) で、H5とH6には、別の式入れてあります。 H5には、 =IF(ISBLANK(B3)=FALSE,H4+F5-G5,"") H6には、 =IF(ISBLANK(B4)=FALSE,H5+F6-G6,"") と、してあります。 (つまり、B4からは項目が計算対象にならないので。) そうすれば、相対参照のまま、H6からは、オートフィル機能使えますよ。 多分、ご質問自体の式は、後者二つの式でいけると思いますので、 あとは、対象セルだけ変えていただければ、多分、出来ると思います。

HGK
質問者

お礼

NO.3の方がいっているようなことを質問したかったのですが、うまく表現できなくて申し訳ありませんでした。詳細な例を提示していただいてありがとうございました。

その他の回答 (4)

回答No.5

回答補足に対して再度回答します。 セルC1に「10000」を入力。 セルC1に「=IF(AND(A2="",B2=""),"",A2-+B2+C1)」を入力。 セルC2からC?までフィルハンドルで入力。 後セルA2、B2とそれ以降入力します。

HGK
質問者

お礼

NO.3の方がいっているようなことを質問したかったのですが、うまく表現できなくて申し訳ありませんでした。回答ありがとうございました。

回答No.3

「A列またはB列のセル内容が変化したら、C列の同一行に所定の式をペースト する。C列には事前にいかなる式も入れておく必要が無いこと。」ですね。 そういうのはVBAで処理しましょう。私はVBAが苦手なんで例を示せませんが、 「セル内容が変わったよ」ってイベントをフックしてどのセルだったか確認 し、AかBの列なら処理ルーチンに進んで…といった流れで行けたと思います。

HGK
質問者

お礼

質問したかった内容を理解していただいてありがとうございます。勉強します。

回答No.2

>C1 のセルに●●+▲▲ という数式を入力しておく ●●+▲▲をA1+B1という数式とします。 >B2に何か入力された場合、C1の数式を複写(相対参照)してC2に計算結果を出す。 というようにしたい。 ここの意味がよくわかりません。B2に入力された値とC1の数式の関係です。 とりあえずB2とC1の数式をたすことにします。これをC2に表示する。 C1セル→=A1+B1  C2セル→=IF(B2=””,””,B2+C1) B2が空欄ならC2も空欄にする。        〈””,””〉 何か入力したらそれをどのように?(今回は足し算)〈B2+C1〉 というように入力してください。

HGK
質問者

補足

回答ありがとうございます。No1に補足しましたのでよろしければお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

下記のやり方ではダメでしょうか。少し頭が混乱しているのですが、間違っていればご指摘下さい。 まずC1の式(C1セルにだけ、If文を付けない、裸の演算式のみを入れる)をフィルハンドルでC2に複写する。そこでC2にセットされた式をメモしておく。それを仮に●とする。そしてC2セルの式を「=If(b2=””,””,◎)」と入力し直す時、◎には●の先頭の「=」を省いたものを入力する。そして適当数行分をC列内下にフィルハンドルで複写しておく。C3以下は表面的に式のセットは目に見えない。

HGK
質問者

補足

すいません。当方も混乱しておりまして・・・。長くなりますがお付き合いください。はっきりいって簡単な出納帳なんです。 仮にC1に繰り越し段高の10000 を入力する。 A列は収入、B列は支出です。 C2のセルに =C1+A2-B2 といれてフィルハンドルで伸ばしておけば何の問題も無い。 ここまではわかっているのですが、C3には =C2+A3-B3、C4には=C3+A4B4・・・ が当然はいっています。 さてここからなのですが、A2に収入1000を入力すれば、C3は11000なります。(C2には=C1+A2-B2が入っている)しかしC3以下にフィルハンドルは使っていません。次にB3に支出1500を入力。ここではもちろんC3は空欄です。ここでC3のセルに、9500と入力させ、なおかつC4以下のC列には何の数式も入らないようにしたいのです。 だんだんこの質問に意味があるのかもわからなくなりましたがよろしくお願いします。 変なこだわりがあるものですから・・・。

関連するQ&A