アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
また、教えて下さい。
A1に曜日、B2に使用量、C3に前日との差とします。
  A   B   C
1 月   5   5 
2 火   8   3
3 水   3   -5
4 木   2   -1
5 金   5   3
6 土   0  
7 日   0
8 月   9   4

c3に答えを出す場合には、sum(B2-B1)で3となりますが、
c8に自動的に答えを出す計算式はどうすればいいのでしょうか?
(c6、c7がブランクがある場合、sum(c8-c5)のように自動的にブランクを飛ばして計算する式です)

分かりづらくて申し訳ございませんが、宜しくお願いします。

質問者からの補足コメント

  • うれしい

    angkor_h様
    ご回答ありがとうございます。
    教えていただきました計算式をもう少し詳しく教えていただけないでしょうか?
    offset関数もどういう風にすればいいのかわからないので宜しくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/06/26 20:43
  • うれしい

    tom04様

    ご回答ありがとうございます。
    折角、教えていただきましたが上手くできませんでした、申し訳ございません。
    仕事で使っているファイルを添付しますので、また教えて下さい。
    K列の「前日との差」の計算式です。
    宜しくお願いします。

    「エクセル ブランクを飛ばして計算する」の補足画像2
    No.1の回答に寄せられた補足コメントです。 補足日時:2015/06/26 21:14
  • へこむわー

    tom04様
    早速のご連絡ありがとうございます。
    赤丸のところですが、これはガスメーターが交換されたため、1からのスタートでした。
    本来であれば、数値が多くなります。
    惑わしてしまい申し訳ございません。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/06/26 22:00
  • うれしい

    WindFalle様
    ご回答ありがとうございます。
    このような計算式もあるのですね。
    助かりました。

    No.4の回答に寄せられた補足コメントです。 補足日時:2015/06/26 22:30

A 回答 (4件)

No.1です。



画像を拝見しました。
ただ、疑問点があります。
検針のようですので、F列数値が少なくなることはないと思うのですが・・・
そして、画像の赤で囲った部分の
G9セルが振出しに戻り、「1」となっているのも判りません。
まぁ~!今回の質問はK列に関してだというコトですので、

最初の質問内容からすれば↓の画像のK列のようになるはずなのですが、
お示しの画像では↓の画像のM列のようになっていますね?

とりあえず両方の数式を載せておきます。
最初の質問内容と同じ意味であればK6セルに
=IF(G6="","",G6-INDEX(G$5:G5,MAX(IF(G$5:G5<>"",ROW(G$1:G1)))))
前回同様、配列数式ですのでCtrl+Shift+Enterで確定してください。
数式内のROW関数
>ROW(G$1:G1)
はA列でもZ列でもどの列でも構いません。1行目から指定するだけです。

M列がご希望なのであれば難しく考える必要はないと思います。
画像ではM6セルに
=IF(G6="","",IF(G5="",G6,G6-G5))
という数式を入れているだけです。

※ こんな感じで良いのでしょうか?m(_ _)m
「エクセル ブランクを飛ばして計算する」の回答画像3
この回答への補足あり
    • good
    • 3

#1さんの回答で出来ていますね。


まあ、私は付け足しかもしれませんが、

  A   B   C
1 月   5   5 
2 火   8   3
3 水   3   -5
4 木   2   -1
5 金   5   3
6 土   0  
7 日   0
8 月   9   4

この場合なら、C2 からで、C1は、=B1
=IF(B2=0,"",B2-OFFSET($B$1,COUNT($B$1:B1)-COUNTIF($B$1:B1,0)-1,))

添付写真の場合は、
数式の始まりが、K6を 最初の数式とすれば、

=IF(G6=0,"",G6-OFFSET($G$5,COUNT($G$5:G5)-COUNTIF($G$5:G5,0)-1,))

この数式を、下にドラッグ・コピーすればよいです。

なお、こちらは配列数式ではありません。
この回答への補足あり
    • good
    • 0

要は、前日が0の場合はさかのぼって0以上の日との差を求めれば良いのですね?


直接関数は難しいので、
D列に、if(B列>0,0,D列(上行)+1)を挿入、
引き算の被減数をoffset関数でD列を引用指定すれば良いと思います。
この回答への補足あり
    • good
    • 0

こんばんは!


一例です。

↓の画像のようにデータは2行目以降にあるとします。
C2はそのまま
=B2
としておき、C3セルに
=IF(B3=0,"",B3-INDEX(B$2:B2,MAX(IF(B$2:B2>0,ROW(A$1:A1)))))
これは配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → C3セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にC3セルのフィルハンドルで下へコピー!
これで画像のような感じになります。m(_ _)m
「エクセル ブランクを飛ばして計算する」の回答画像1
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています