限られた数の会場 (約 15) に分散される限られた数のトレーニング (約 50) のスケジュールを作成しようとしており、現在使用している方法よりもスマートなアプローチを探しています。
スケジュールは 2 つのスプレッドシートで構成されています。
スプレッドシート 1 には、トレーニングのデータが含まれています。トレーニングごとに 1 行あります。トレーニング会場の名前、開始日、終了日の列があります。
スプレッドシート 2 は、元のデータの変更に適応するスプレッドシート 1 のデータの視覚的表現です。今のところ、年間の各日に対して 1 列、各トレーニング会場に対して 1 行が含まれています。したがって、各セルは特定のトレーニング会場の特定の日付を表します。
目的は、シート 1 に、会場でAZ
から まで1 April 2017
トレーニングが行われると記載されている場合、シート 2 のトレーニング会場の行のからまで27 April 2017
の日付を表すセルを条件付き書式でマークすることです。 1 April
27 April
AZ
トレーニング会場を表す行に現在使用している条件付き書式機能は次のとおりAZ
です。
=IF(OR(AND(Sheet1!$C$5="AZ";Sheet1!$F$5>=B$6;Sheet1!$E$5<=B$6);AND(Sheet1!$C$6="AZ";Sheet1!$F$6>=B$6;Sheet1!$E$6<=B$6); ...... AND(Sheet1!$C$50="AZ";Sheet1!$F$50>=B$6;Sheet1!$E$50<=B$6));TRUE;FALSE)
したがって、反復 AND 部分は、各セルについて、その列の日付 (行 6 に含まれる) がシート 1 のいずれかのトレーニングの開始日と終了日の範囲内にあるかどうか、およびこのトレーニングがトレーニング会場で行われるかどうかをチェックしますAZ
。シート 1 のいずれかのトレーニングでこれが当てはまる場合、IF 関数は true となり、セルがマークされます。
驚いたことに、これは今のところうまくいっています。しかし、これは非常に時間がかかり、洗練されていないソリューションです。そのため、現在、15 のトレーニング会場ごとに関数の AND 部分を 50 回繰り返さなくても済む方法を探しています。
徹底的にグーグル検索した結果、配列数式がよい方法である可能性があり、条件付き書式はデフォルトで配列数式として扱われることが判明したので、次のことを試しました。
=IF(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54));TRUE;FALSE)
そして
=IF(OR(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54)));TRUE;FALSE)
しかし、今のところうまくいっていないようです。配列数式の仕組みを完全に理解していないのかもしれません。したがって、私の関数に明らかなエラーを見つけた場合、試すべきことについて何かご意見がある場合、または私がやろうとしていることに対する代替アプローチを提案できる場合は、お知らせください。
そうしないと、このひどい AND セクションを際限なくコピーして適応させ続けるうちに気が狂ってしまうかもしれません。