1

3 列のデータ テーブルがあります (見やすくするために外観は簡略化されていますが、配置とデータ形式は保持されています。最初の列ADate地域設定で書式設定されていますが、テキストではありません):

Date        Module  Value
27.01.2013  xxxxx   90
27.01.2013  ttttt   100
29.01.2013  aaaaa   110
31.01.2013  aaaaa   50
31.01.2013  mmmmm   200
31.01.2013  ttttt   80
03.02.2013  ttttt   140
04.02.2013  aaaaa   120
07.02.2013  mmmmm   150
07.02.2013  ttttt   90
07.02.2013  aaaaa   190
08.02.2013  aaaaa   210
08.02.2013  aaaaa   90
08.02.2013  aaaaa   170
08.02.2013  ttttt   90
08.02.2013  ttttt   110
08.02.2013  mmmmm   130
09.02.2013  mmmmm   90
09.02.2013  aaaaa   200

リストはかなり長くなる可能性があり、定期的に更新されます。私が達成する必要があるのはこれです:同じシートに、次の計算されたセルが列Eから始まるように配置されています(つまり、データと計算された領域の間に空白の列Dがあります):

MAX last week   Date        Value
aaaaa           09.02.2013  200
mmmmm           07.02.2013  150
ttttt           03.02.2013  140
xxxxx           <empty>     No change

A:C基本的に、次のデータ配列から調べる必要があります。

  1. E( のモジュール名に対応する)の値のリストと、同じモジュールの値の中で最大であるが、今日から始まる最後の 1 週間Bの対応する値を返す必要があります。
  2. 過去 1 週間にこのモジュールのレコードがない場合 - Date は空で、"No change"文字列は Value である必要があります (xxxxx上記のサンプルのように、最初の配列に関連し、今日が 2 月 9 日であると仮定します)。

#2に関しては、次のようになりました。

  • の場合Date:=IF(SUMPRODUCT(--(A:A>TODAY()-7),--(A:A="xxxxx"))=0,"")
  • For Value: =IF(F5="","No change")(左側の対応する日付をここで確認します)

#1については、行き詰まっており、ガイダンスまたはアドバイスが必要な場所です. などでさまざまなことを試しましたがMATCHVLOOKUP成功にはほど遠いものでした。エラーが発生したか、関連性のない結果が得られました。

それが重要な場合 - 日付は常にリストの最後に新しいレコードが来るように並べ替えられます。つまり、新しいレコードは一番下に追加されます。同じモジュールの場合、同じ日に複数のレコードが存在する場合があります。サンプルまたは説明が明確でない場合は、コメントで返信してください。詳細を追加します。ありがとう!

4

1 に答える 1

3

値のG2でこのような配列式を試してください

=IF(COUNTIFS(A$2:A$100,">"&TODAY()-7,B$2:B$100,E2),MAX(IF(A$2:A$100>TODAY()-7,IF(B$2:B$100=E2,C$2:C$100))),"No change")

で確認しCTRL+SHIFT+ENTERてコピーした

そしてF2の日付

=IF(G2="No change","",MIN(IF(A$2:A$100>TODAY()-7,IF(B$2:B$100=E2,IF(C$2:C$100=G2,A$2:A$100)))))

そのモジュールの過去 7 日間に最大値が発生した日付が複数ある場合は、最も早い日付が表示されます (最新の場合は MIN を MAX に変更します)。

作業サンプルこちら

于 2013-02-09T13:26:58.423 に答える