[[20240427221846]] 『燃費管理にて』(うるん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『燃費管理にて』(うるん)

ニッチな質問ですみません。
複数台の車の燃費を管理したく、以下のようなリストを作成しました。

 a     b     c     d     e     f     g     h
 ※    日付  金額  油量  単価  車種  距離  燃費

 e列の単価は
   =IFERROR(ROUND(C2/D2,0),"")
 h列の燃費は
   =IF(AND(D2<>"",G2<>""),ROUND(G2/D2,2),"")
 のように入力していて、残りの項目は手打ちです。

基本的には満タン給油と給油時の走行距離(trip)を記録しているのですが、稀に1000円単位もしくは10L単位などで給油されることがあります。
その場合は当然ですが燃費計算がおかしくなり、次に満タン給油した際にもおかしくなります。

そこで※に部分給油をしたときにはxなどの印を付け、燃費計算せずに次回満タン給油をした際に一括で計算できるようにしたいと考えています。

例)

 a     b     c     d     e     f     g     h
       4/1   1,000 5.88  170   nbox  300   51.02
       4/8   3,650 22.12 165   voxy  300   13.56
       4/10  3.078 18.11 170   nbox  76    4.20
 ↓
 x     4/1   1,000 5.88  170   nbox  300   '---
       4/8   3,650 22.12 165   voxy  300   13.56
       4/10  3.078 18.11 170   nbox  76    15.67

 xのある行であればh列を
   =IF(A2="x","---",IF(AND(D2<>"",G2<>""),ROUND(G2/D2,2),""))
 とすれば良いのだと思いますが、その下を"15.67"とするにはどのような数式にすれば良いか、皆目検討がつかず投稿させて頂きました。

何か良いアイデアがございましたらご教示頂きたく。
どうかよろしくお願いします。

< 使用 Excel:Excel2021、使用 OS:Windows11 >


こんなかんじ。。。^^;
数式は他の回答者様のお出ましをお待ちくださいませ。
自信ゼロにつき違ってましたらお許しを。。。( ̄▽ ̄)
m(_ _)m
Sheet1 A1から項目名が始まっている前程です
 Option Explicit
Sub OneInstanceMain()
    Dim i&, r, oil, zensou
    With Worksheets("Sheet1")
        Set r = .Cells(1).CurrentRegion
        For i = 2 To r.Rows.Count
            If r(i, 1) = "x" Then
                If i + 2 <= r.Rows.Count Then
                    r(i, 8) = "---"
                    oil = CDec(r(i, 4)) + CDec(r(i, 4).Offset(2))
                    zensou = CDec(r(i, 7)) + CDec(r(i, 7).Offset(2))
                    r(i, 8).Offset(2) = Application.Round(CDec(zensou) / CDec(oil), 2)
                End If
            End If
        Next
    End With
End Sub
(隠居Z) 2024/04/28(日) 10:32:10

 xの場合に備えて、累計列を新設したらどうですかね?

 (1) E2セル =D2+IF(XLOOKUP($G2,$G$1:$G1,$A$1:$A1,"",0,-1)="x",N(XLOOKUP($G2,$G$1:$G1,E$1:E1,"",0,-1)))
 (2) E2セルをコピーして、I2にペースト
 (3) J2セル =IF(A2="x","---",IF(AND(D2<>"",G2<>""),ROUND(I2/E2,2),""))

 上記数式を下にコピー

 <結果図>
 行  _A_  __B__  __C__  __D__  ____E____  __F__  __G__  __H__  ____I____  __J__
  1  ※   日付   金額   油量    油量累計   単価   車種   距離   距離累計   燃費 
  2  x      4/1   1000   5.88       5.88    170  nbox     300        300  ---  
  3         4/8   3650  22.12      22.12    165  voxy     300        300  13.56
  4        4/10  3.078  18.11      23.99    170  nbox      76        376  15.67

(半平太) 2024/04/28(日) 11:09:56


>隠居Zさま

早速コメント頂きありがとうございます!
大変恐縮ながら、VBAはちょっとハードルが高すぎて手を付けるのが怖く。。。
もう少し実力が付いてから、改めて実践してみようと思います!

>半平太さま

早速コメント頂きありがとうございます!
補助列の考え方はなかったので、目からウロコでした!
確かにごちゃごちゃ考えるよりはワンステップ挟んだほうがスマートかも知れませんね…
数式の写し間違えで何回かvalueってしまいましたが、ちゃんと思った通りの数値にすることができました!

お二人共ありがとうございましたm(_ _)m
(うるん) 2024/04/28(日) 20:37:03


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.