ワークブックをまとめているときに、あるワークシートに要約を、別のワークシートに詳細情報を保持したい場合があります。

たとえば、Sheet1が要約ワークシートであり、Sheet2に銀行口座の詳細情報があるとします。詳細情報を見ると、列Aに日付があり、列B、C、およびDにさまざまな口座の残高があります。したがって、詳細情報は、さまざまな日付での銀行残高の進行状況を示す表です。

Sheet1に要約情報をまとめると、列B、C、およびDの最後の数値を参照する必要があることがわかります。これらの数値は最新の残高を表しているため、要約に最適です。どうやってやるの?特に、詳細ワークシートに情報を追加し続ける場合はどうでしょうか。

実際、問題に取り組むにはいくつかの方法があります。 (通常、Excelの問題を解決するにはいくつかの方法があります。)1つの方法は、VLOOKUP関数を使用することです。詳細の列B(Sheet2)から最新の残高が必要な要約のポイントで、次の式を入力します。

=VLOOKUP(MAX(Sheet2!$A:$A),Sheet2!$A:$D,2)

他の2つの口座残高の参照を変更するには、最後の数値(2)を3(列Cの口座の場合)または4(列Dの口座の場合)に変更するだけです。この関数は、日付を含む列Aの最大値を検索するために機能します。次に、データテーブル(Sheet2!$ A:$ D)を調べて、目的の列に適切なオフセットを見つけます。

最後に入力された残高を過ぎた列Aに日付がない場合、このアプローチは正常に機能します。存在する場合、返される値は常に正しくありません。

この問題に取り組む別の方法は、INDEX関数をCOUNTまたはCOUNTAと組み合わせて使用​​することです。詳細列にテキストが含まれていない場合(列ヘッダーにも)、COUNT関数を使用します。テキストが含まれている場合は、COUNTAが優先されます。詳細の列Bの最後の残高を含めるポイントで、次の式を使用します。

=INDEX(Sheet2!B:B,COUNTA(Sheet2!B:B))

テーブルを調べて、列Bの非空白セルの数を判別し、最後の非空白セルから数値を引き出します。列CおよびDの式を適合させるには、B参照を適切なCまたはDに変更するだけです。

この問題に対処するさらに別の方法は、次のようにOFFSET関数を使用することです。

=OFFSET(Sheet2!B1,COUNTA(Sheet2!B:B)-1,0)

この関数は、基本参照セルからのセルオフセットの値を返します。この場合、基本セルはSheet2!B1です。 COUNTA関数は、ベースからオフセットする行数を決定するために使用され、0は、オフセットがベース参照と同じ列にある必要があることを指定します。列CとDの式を変更するには、Bへのすべての参照をCまたはDに変更するだけです。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2170)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。