- 締切済み
エクセル2010 セルの参照方法について
画像のような運転記録簿を作成しています。 給油した場合、H列に給油時のメーター、I列に給油量を入れていきます。 数式によって、前月最終給油時の距離から今月の最終給油時距離(画像の場合H27セル)を参照し、それまでの総給油量で割って平均燃費を出せるようにしてあります。 しかし、各給油間の燃費を個別で見ることはできません。たとえば、9901km~9970kmの69kmを走った時の燃費が欲しいとします。 そこで、 A1セル (1)前月の最終給油~今月初回給油の燃費 A2セル (2)今月初回給油~今月2回目給油の燃費 A3セル (3)今月2回目給油~今月3回目給油の燃費 ・ ・ という情報を表示させるための数式をつくります。 例は9901km~9970kmの69kmの燃費なので、初回~2回目の燃費、つまり(2)となります。シート2のA2セルに、 =IF(COUNT(運転日誌!$H$8:$H$38),(SMALL(運転日誌!$H$8:$H$38,2)-(SMALL(運転日誌!$H$8:$H$38,1)))/2.00,"") と入れました。 距離計の数字は必ず昇順に並びますので、SMALL関数を使って今月2回目の給油~今月初回給油の距離数を出し、最後に給油量で割って燃料消費率を出しています。 しかし、給油量は数式に直接入力しています。 給油の度に都度変動し、また昇順、降順のどちらにもならず、入力される行も決まっていないためです。 そこでOFFSET関数を利用して、給油時のメーターから給油量を参照しようと、以下の式を作りました。 =IF(COUNT(運転日誌!$H$8:$H$38),(SMALL(運転日誌!$H$8:$H$38,2)-(SMALL(運転日誌!$H$8:$H$38,1)))/OFFSET(SMALL(運転日誌!$H$8:$H$38,2),0,1),"") しかしながらSMALL関数はセルの値を返してくるため、OFFSET関数が使えません。 この給油量を数式によって参照するのに、よい関数はないものでしょうか。 長くなりましたが、要は前月最終~1回目、1回目~2回目、2回目~3回目の各給油間の燃費を、シート2のA1~A3セルにそれぞれ個別表示させるにはどうすればよいか、ということになります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2のA1セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>COUNT(運転日誌!H:H)-1,"",(SMALL(運転日誌!H:H,ROW(A1)+1)-SMALL(運転日誌!H:H,ROW(A1)))/INDEX(運転日誌!I:I,MATCH(SMALL(運転日誌!H:H,ROW(A1)+1),運転日誌!H:H,0)))
- kuma310min
- ベストアンサー率40% (212/518)
OFFSET(SMALL(運転日誌!$H$8:$H$38,2),0,1) の部分を、 VLOOKUP(SMALL(運転日誌!$H$8:$H$38,2),運転日誌!$H$8:$I$38,2,FALSE) に変えればOKだと思います。 ※お節介だとは思いますが、掲載画像は必要部分だけにしないと 小さ過ぎて見え難いです。 私よりエクセルの知識が上の方は大勢いらっしゃいますが、 そのような方も画像が見難いと、回答を躊躇してしまうかも・・・