1. 最初と最後のシートの名前を取得する

1. 最初と最後のシートの名前を取得する

1 日ごとに別々のワークシート (TAB) にデータが入力されているファイルがあります。レイアウトは同じですが、これらの別々の TAB から過去 1 ~ 3 か月の動的な平均を取得するソリューションを探しています。毎日新しい TAB が作成されますが、毎月手動で行うと時間がかかりすぎます。何か提案はありますか?

答え1

データ > 統合または 3D 式を試すことができます

例: 次のシートがあります Jan Feb Mar Summary

各シートにA1にいくつかの数字があると仮定します

概要シートに移動し、A1に次の数式を入力します =average('Jan:Mar'!A1)

答え2

そのためには、次の 2 つの手順を実行します。

1. 最初と最後のシートの名前を取得する

理解しているとおり、各日に新しいシートを追加しています。シート名が同じ形式でフォーマットされていることを確認する必要があります。たとえば、形式が DD-MM-YY であるとします (つまり、2020 年 8 月 1 日は 01-08-20 になります)。

このステップでは、シート範囲テキスト過去3か月間(例:01-03-20:01-01-20)、INDIRECT 式で 3D 式を作成するために使用されます(2 番目のステップ)。

仮にLDATE保持する最後関連する日付(別のセルへの参照、またはTODAY()やTODAY()-1などの数式)を指定します。次に、初め関連する日付。最終日より 3*30 日前の場合は、次を使用します。

=LDATE-3*30

または、DATE のちょうど 3 か月前にする必要がある場合は、次のようにします。

=DATE(YEAR(LDATE),MONTH(LDATE)-3,DAY(LDATE))

この最初のデートの名前をFDATE

最後に、これはフォーマットされたシート範囲テキストになります (シート名を DD-MM-YY としてフォーマットしていることを前提としていることに注意してください。必要に応じて他の形式に変更してください)。

="'"&TEXT(LDATE,"DD-MM-YY")&":"&TEXT(FDATE,"DD-MM-YY")&"'!"

値は次のようになります。'14-07-20:14-04-20'!

範囲全体を次のように名付けましょうシート範囲

2. 間接 + 3d 式

INDIRECT 関数は、指定されたテキスト文字列から有効な参照を返します。'Sheet1:Sheet4'!A1:B2 は、Sheet1 から Sheet4 までのすべてのシートのすべての A1:B2 セルの範囲です。

したがって、次の式はダイナミック レンジの平均を取得します (たとえば、すべての A3 セルの平均が必要であると仮定します)。

=AVERAGE(INDIRECT(SHEETRANGE&"A3"))

または、すべてをセル内で実行したい場合 (LDATE は除きます。LDATE はユーザーが定義します) は、次のようになります。

=AVERAGE(INDIRECT("'"&TEXT(LDATE,"DD-MM-YY")&":"&TEXT(DATE(YEAR(LDATE),MONTH(LDATE)-3,DAY(LDATE)),"DD-MM-YY")&"'!"&"A3"))

幸運を!

関連情報