• ベストアンサー

エクセルの関数

エクセルで家計簿を作っています。 A列に1日から31日までが入力されていまして、B列以降に食費などの収支を入れています。 そして、Q列からは違う表を作っていまして、新聞代などの固定費の支払日や項目・金額を入れています。 A列の、たとえば20日がA20だとしますと、V20のセルに、 支払日と同じ日かそれ以降にあたる固定費の金額の合計を表示させたいのです。 図で示しますと、  Q     R     S 支払日  項 目  金 額  10   新聞代  \3200  15   電気代  \4000  26   携帯代  \8000 と、固定費が表になっています。  A     B    ・・・  V 日 付  食 費  ・・・支払日が過ぎた固定費の累計  1            \0  2            \0  ・            ・  ・            ・  ・            ・  10           \3200  11           \3200  12           \3200  ・            ・  ・            ・  ・            ・  15           \7200  16           \7200  ・            ・  ・            ・  ・            ・  25           \7200  26           \15200  27           \15200  ・            ・  ・            ・  ・            ・ 長い図になってしまいました^^; V列にはどのような式を入れたら良いでしょうか よろしくお願いします

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こんにちは。 先頭行はタイトル行として、セルV2 に下記を入れて下にコピー =SUM(IF(ISNA(VLOOKUP(A2,$Q$2:$S$4,3,0)),0,VLOOKUP(A2,$Q$2:$S$4,3,0)),V1) これで良いでしょうか? 同じシート内で、A列 ~ と Q列 ~ は行に対応がないのに、V列 は A列 の日付に対応した行なんですか?データの持ち方がちょっと謎ですのでハズしているかも。

commune
質問者

お礼

ご回答ありがとうございました この式で出来ました! V列は、違う列で入れる関数に利用する列なんです。 「表示しない」にするつもりの列なので、間に違う表が挟まっても問題無いんです。。。^^; ISNA関数、さっそく調べて自分でも活用できるようにしたいと思います。 ありがとうございました

その他の回答 (3)

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

VLOOKUP関数のTRUE型を使います。 理解してもらうために、簡略化した例で説明します。 (1)(固定費)テーブルの作成 D1:E4に 1 0 2 20 5 15 6 10 を作ります。1-6は日と考えてください。 (2)(固定費)累計の算出 F1セルに0を入れる F2セルに関数式=F1+E2を入れF4まで複写する。 (+ハンドルを下へ引っ張る) D1:F4は 1 0 0 2 20 20 5 15 35 6 10 45 となり、F列に累計が出ます。 (3)A1:A7までに1,2,3,4,5,6,7を入れる。 日にちの積もりです。 B1に関数式 =VLOOKUP(A1,$D$1:$F$4,3,TRUE)を入れます。 (絶対番地にすること、第3列にすること、TRUE にすることが注意点です) B7まで+ハンドルを引っ張って、式の複写をする。 すると、A1:B7は 1 0 2 20 3 20 4 20 5 35 6 45 7 45 となります。これで良いでしょう。本番データで同じことをやって見てください。

commune
質問者

お礼

ご回答ありがとうございました 固定費テーブルを作成する際に、あらかじめA列を日付順に並べ替えをする必要があるのですね。 今回の質問で得た知識はとても勉強になりました。 ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

内容が 不明な点があるので こうしたほうがいいということをいいます。 まず、何をもって固定費と判断するかですね。 それがちょっと不明です。 なので S列に入ってるものを固定費とみなすことにします。 つまり、固定費が発生していない日は 0という値が S列にセットされているものとしてです。 V1のセルには =S1 V2のセルには =sum($s$1:s2) V2をコピーして V3以降V31ぐらいまで 選択して 貼り付けとします。 こんなんで どうでしょうか?

commune
質問者

お礼

ご回答ありがとうございました。 説明が下手ですみません。 No.1の方へのお礼文に少し補足させていただきました。 (補足欄を使わずに申し訳ありません) どうぞ再度のご回答をよろしくお願いします

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

見出し行が1行目に、1日が2行目にあると思います。 1.セルV2に式[=sum(R$2:R2)を入力する。 2.セルの右下の黒い四角をドラッグして31日まで    引っ張ってコピーする。 これで1日には1~1日、5日には1~5日の R列の合計が計算されます。

commune
質問者

お礼

ご回答ありがとうございました やっぱり私の説明不足だったようですm(__)m 例えばA15が15日だとすると、V15には Q列にある日付から15日以降になっているセルを探して、その行のS列の金額とV14の金額をプラスした金額で表示させたいのです。。。 簡単に説明できなくてスミマセン^^;

関連するQ&A