web-dev-qa-db-ja.com

値のExcelクエリの日付範囲

Excelドキュメントにクエリを実行して値が表示される回数を特定し、条件付き書式を設定してヒートマップを作成し、日付の間にリソースがビジーである回数を特定できるようにします。

個々のセルにJan1-Dec31があり、次のように3つの列に分割されたデータをクエリする必要があります

       A       B       C
      Jan1    Jan12   Bob
      Jan2    Jan10   Roger
      Jan11   Jan14   Bob

式では、列Aの開始日と列Bの終了日を使用し、列Cのリソース名の出現をカウントする必要があります。

したがって、私の出力は次のようにヒートマップに入ります。

        Bob  Roger
 Jan1    1    0

 Jan2    1    1

 Jan3    1    1

 Jan4    1    1

 Jan5    1    1

 Jan6    1    1

 Jan7    1    1

 Jan8    1    1

 Jan9    1    1

 Jan10   1    1

 Jan11   2    0

 Jan12   2    0

 Jan13   1    0

 Jan14   1    0

リソースごとに365の数式を作成せずに拡張できれば、それは素晴らしいことです。

1
compguy101101

thinkあなたの質問を正しく理解しています。私が解釈しているのは、「ヒートマップ」入力を拡張する方法を探しているということですが、間違って読んでいる可能性があります。私が間違っているかどうか教えてください。

これは、SUMPRODUCTが優れている典型的なケースです。

=SUMPRODUCT(--($E2>=$A$2:$A$4)*($E2<=$B$2:$B$4)*(F$1=$C$2:$C$4))

上下にコピーできます(画像を参照)。実際のデータに合わせて範囲を編集する必要があることは明らかです。

それはこのように動作します。ボブの2016年1月1日を考えてみましょう。日付を取得し、日付を開始日と比較し、日付が開始日配列の開始日以上であるかどうかに基づいて、true/falseの配列を作成します。次に、終了日配列の終了日と同じかそれ以下を実行します。次に、リソース配列でBobsをチェックします。最後に、3つの配列があります。

{TRUE、FALSE、FALSE} * {TRUE、TRUE、TRUE} * {TRUE、FALSE、TRUE}-> {TRUE、FALSE、FALSE}。 *はAND演算子であるため、TRUE、TRUE、TRUEが発生する場所は1であり、FALSEが発生する場合は0です。次に、TRUE、FALSE、FALSEの配列を1、0、0に強制変換し、結果を合計します。

enter image description here

編集:コメントで話していることに取り組む方法は次のとおりです。

enter image description here

2
Joe