Excel INDEXを使用して一連のテキストラベルを作成する

Excel INDEXを使用して一連のテキストラベルを作成する

使っていますこれカレンダーを作成するための Excel テンプレート。ユリウス日の横にテキストを追加しようとしています。テキストは、値「D」、「P」、「L」の範囲から取得されます。

月曜日から始まる値は「D」、火曜日は「DP」、水曜日は「DPL」、木曜日は「DP」、金曜日は「L」です。週末には追加のテキストはありません。

次の週も同じパターンに従いますが、「P」で始まります。

結果は次のようになります。

Week | M | T | W | T | F |
--------------------------
  1  | D |PL |DPL|DP | L |
--------------------------
  2  | P |LD |PLD|PL | D |
--------------------------
  3  | L |DP |LDP|LD | P |

そしてそれはずっと続くのです...

答え1

  1. 毎月初めに適切な「P、D、L」の値を入力します
  2. 火曜日の計算式は次のようになります(月曜日がA1

    =if(A1="D","PL",if(A1="P","LD",if(A1="L","DP")))

  3. 水曜日から金曜日については、前日の値に基づいて同様の数式を作成します(つまり、月曜日がでA1火曜日がB1だった場合、水曜日の数式を次のようにC1記述します=if(C1...)。

  4. 最初の週の火曜日から金曜日までの数式を記述した後、それをコピーして 2 週目以降に貼り付けます。

  5. 各月の第2、第3月曜日などについて、次の式を書いてください(第1月曜日がA1、第2月曜日がA2

    =if(A1="D","P",if(A1="P","L",if(A1="L","P")))

  6. 同じ火曜~金曜の数式を年間のすべての週にコピーできますが、月曜の数式はコピーできますが、各月の最初の月曜の値を手動で指定する必要があります。


補遺 201905270228

インデックスを使用する一般的なアプローチは次のとおりです。

  1. 新しいテーブルを作成します (INDEX が呼び出す参照配列として機能します)。上部の X 軸に曜日を数値で (例: Mon=1、Tue=2 など)、Y 軸に週番号を入力します。次に、各曜日の組み合わせの D、P、L 結果をこのテーブルに入力します。
  2. カレンダーの各日の数式については、次のテンプレートに似た数式が必要です。

    =index([array created in step 1],[embedded formula that extracts the week number from entry and Sunday column e.g. =weeknum(..._],[embedded formula that converts day of week to corresponding day number in array, e.g. =weekday(...)])

これで問題が解決した場合は、回答としてマークしてください。

関連情報