これは私の入力のサンプルです:
次に、結果として深夜があり、この結果を自動的に達成したいと思います。
つまり、1つの列に日時があり、その日の真夜中より前の最後の日時と、この真夜中より後の最初の日時を見つけたいと思います。 1日の日時は、1つでも、1つでも、複数でもかまいません。また、元の入力の隣の列にある値を見つける必要があります。
参考:入力データは私のガスメーターのスナップショットです。 [値]列の数値は、最初の列の時間の前に費やされた合計立方メートルです。 1日の支出を計算するには、これらの境界値を見つける必要があります。計算はできますが、入力でそれらの値を見つけることができません。
ありがとうございました!
MATCH
関数を使用することをお勧めします。 HLOOKUP
やVLOOKUP
に似ていますが、値ではなくインデックス(1 ..n)を返す点が異なります(また、HLOOKUP
とVLOOKUP
、おそらくそれらについて学ぶ必要があります)。 MATCH(D2, $A$2:$A$14)
は、_$A$2:$A$14
_以下の_D2
_の最後の値のインデックスを返します。つまり、_D2
_の深夜0時より前の最後の時間(のインデックス)。 (これは1から13までの整数の形式であり、少し混乱するかもしれませんが、すべて問題ありません。)冗長性を回避するには、「ヘルパー列」を使用すると便利です。だから私は=MATCH(D2, $A$2:$A$14)
を_I2
_に入れました。次に、次の式を入力します。
E2
_→=INDEX($A$2:$B$14, $I2, 1)
F2
_→=INDEX($A$2:$B$14, $I2, 2)
G2
_→=INDEX($A$2:$B$14, $I2+1, 1)
H2
_→=INDEX($A$2:$B$14, $I2+1, 2)
ここで、INDEX
を使用して、列A
およびB
から目的の値をフェッチします。
テスト/デモンストレーションの目的で、入力を少しクリーンアップしました。
結果は次のとおりです。
これは、_A2
_より前の列D
の日付に対して爆発します。これを修正するには、別のヘルパー列(J
)を追加し、G
とH
を変更します。
J2
_→=IFERROR(I2, 1) + 1
G2
_→=INDEX($A$2:$B$14, $J2, 1)
H2
_→=INDEX($A$2:$B$14, $J2, 2)