データテーブルを振り返る(Microsoft Excel)
カークはExcelに大きなデータテーブルを持っています。各行には、車両番号、日付(表はこの列でソートされています)、開始マイレージ、および終了マイレージがあります。彼は、データテーブルを逆方向に検索して、現在の行の開始マイレージと同じ車両番号の終了マイレージを見つけたいと考えています。VLOOKUPと同様ですが、上から下ではなく下から上を探します。
数式を使用してこれにアプローチする方法はいくつかあります。この例では、車両番号が列Aにあり、日付が列Bにあり、開始マイレージが列Cにあり、終了マイレージが列Dにあると仮定します。
必要なのは、現在の車両の最新の終了マイレージを検索する列Cに入力できる式です。次の式は1つのアプローチを提供します。セルC3に配置する必要があります:
=LOOKUP(2,1/FIND(A3,A$2:A2,1),D$2:D2)
必要な限り、数式を列の下にコピーできます。列Aの車両番号がデータテーブルの前に表示されていない場合、数式は#VALUEなどのエラーを返します。または#N / A。その場合、車両に使用する開始マイレージを使用して数式を簡単に入力できます。
別の数式によるアプローチがありますが、これは配列数式として入力する必要があります(Ctrl + Shift + Enterを押します):
=IF(A3="","",MAX(IF(($A$2:A2=A3)*($D$2:D2),$D$2:D2)))
もう一度、数式をセルC3に配置し、必要なだけコピーします。
車両がデータテーブルの前に表示されていない場合、これはエラー値を返しません。値0が返されます。次に、その車両の実際の開始走行距離を式に入力できます。次の配列数式も使用できます:
=IF(A3="","",INDIRECT("D"&LARGE(($A$2:A3=A3)*ROW($2:3),2)))
この配列数式との違いは、車両がデータテーブルの前に表示されていない場合、#REF!を返すことです。エラー。
C3で使用できるさらに短い2つの配列数式を次に示します(また、必要に応じてコピーします)。
=MAX((D$2:D2)*(--(A$2:A2=A3))) =MAX(IF(A$2:A2=A3,D$2:D2))
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11745)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkデータテーブルを逆方向に見る。