1

私には2つの列があります。1つは日付用で、もう1つはその日のイベントに参加できない人の数用です。日付はExcelの日付としてフォーマットされます。現在の日付以降、最も少ない人数で行けない最初のデートを見つけたいと思います。理想的には、VBAマクロに頼らずに問題を解決したいと思います。

4

3 に答える 3

2

日付がA2:A100で、数値がB2:B100であると仮定して、この「配列数式」を試してください。

=MIN(IF(A2:A100>TODAY(),IF(B2:B100=MIN(IF(A2:A100>TODAY(),B2:B100)),A2:A100))

数式バーの数式の前後に{や}のような中括弧が表示されるように、Ctrl + Shift+Enterで数式を確認する必要があります

これにより、今日以降であり、今日以降の日付の数が最も少ない最小の日付(最も早い)が検出されます。

于 2013-01-25T00:42:01.167 に答える
2

与えられた列A=日付、B=人数次の3番目の列を追加します。

=IF(A1>TODAY(),B1,"")

次に、ルックアップを使用して、最小のエントリの日付を見つけます。

=INDEX(A:A,MATCH(MIN(C:C),C:C,0))

Barrysの修正で更新されました(ありがとう!)

于 2013-01-25T00:47:24.513 に答える
1

OKこれは理解するのが楽しいものです:)

残念ながら、このアプローチでは現在の日付が考慮されていません。データを昇順で並べ替えてから、MAX関数とMATCH関数を検索している日付範囲に制限することで解決できます(私は十分ではありません何らかの形式の事前に整理されたデータなしでこれを行う方法を理解するためのExcelマスター)。

次のデータを使用してみましょう。

     A       | B
1  1/05/2012 | 1
2  2/14/2012 | 4
3  3/17/2012 | 2
4  4/01/2012 | 3
5  5/12/2012 | 1

列Bの値を出席者として使用し、Aを日付として使用すると、これで最も早い/最も高いものを確認できます(Berryの提案を実装する(関数を読みやすくする))。

=INDEX(A1:A5, MATCH(MAX(B1:B5),B1:B5,0), 1)

他の誰かが私が欠けているものを理解できる場合に備えて、ここに何が起こっているかの内訳があります:

=MAX(B1:B5) -> 4
Looks for the largest attendees count

=MATCH(MAX(B1:B5),B1:B5,0) -> 2
find the first row where this number occurs.

=INDEX(A1:A5, MATCH(MAX(B1:B5),B1:B5,0), 1) -> 2/14/2012
which is the value found at that row in the first column
于 2013-01-25T00:41:45.333 に答える