Excel。曜日を求める方法をまとめてみました。
ユーザー定義+TEXT関数+WEEKDAY関数+CHOOSE関数
最近、Excelでスケジュール関係の表をつくるので、
曜日の算出方法に関してよくご質問をうけるので、
今回は、代表的な4パターンをまとめてご紹介しようと思います。
このようなことをやっていきます。
B列には、2015年3月1日~3月10日までが入力されております。
最初にご紹介するのは、ユーザー定義を使った方法をご紹介していきます。
C3をクリックして、B3を参照する計算式を作ります。
=B3と入力して確定します。当然3月1日と表示されます。
そうしましたら、C3のセルをアクティブにしたまま、
セルの書式設定ダイアログボックスを表示しましょう。
分類をユーザー定義で、種類をaaaと入力してOKボタンをクリックしましょう。
すると、C3には日と表示されましたね。
あとは、C12までオートフィルハンドルを使ってコピーしましょう。
これで、ユーザー定義は完成しました。
和暦の曜日の省略が aaa
和暦の曜日がaaaa
西暦の曜日の省略が ddd
西暦の曜日がdddd
となっていますので、用途に合わせて、aが3個なのか、4個なのかということになります。
この方法は、一番簡単だと思いますが、
条件付き書式を使って土曜日を青色で塗りつぶそうとしても、簡単に出来ないのが欠点ですね。
あくまで、表示形式を変えただけですから。
次にご紹介するのはTEXT関数。
これは、結構簡単ですし汎用性もあるので、オススメですね。
D3をクリックして、TEXT関数のダイアログボックスを表示しましょう。
値には、日付が入っているB3を入力します。
表示形式には、先程ご紹介した、”aaa”と入力します。
あとは、OKボタンをクリックしましょう。
そして、オートフィルハンドルを使って数式をコピーしましょう。
これが、TEXT関数を使った曜日の算出方法でした。とっても簡単ですね。
当然のことながら、表示形式を、”aaaa”と入力すれば、日曜日と表示されますよ。
さて、次に紹介するのが、WEEKDAY関数ですが、
このWEEKDAY関数は曜日を数値として返してくるので、そのままでは使えません。
たとえば、日曜日を1として返してきますので、これを日と表示するためには、
IF関数とのネストで処理をする必要があります。
E3をクリックして、IF関数のダイアログボックスを…と書いていきたいのですが、
長すぎますので、数式を下記に記載します。
=IF(WEEKDAY(B3,1)=1,"日",IF(WEEKDAY(B3,1)=2,"月",IF(WEEKDAY(B3,1)=3,"火",IF(WEEKDAY(B3,1)=4,"水",IF(WEEKDAY(B3,1)=5,"木",IF(WEEKDAY(B3,1)=6,"金",IF(WEEKDAY(B3,1)=7,"土","")))))))
う~む。TEXT関数と比べてみても、大変なのが一目瞭然。
アイディアはいいのですが、これでは、自力で曜日を入力したほうが早いでしょうね。
そこで、CHOOSE関数とWEEKDAY関数をネストすると、煩雑ではなく同じことができますので、
最後は、F3をクリックして、CHOOSE関数のダイアログボックスを表示しましょう。
インデックスには、WEEKDAY関数を入力しますので、WEEKDAY(B3,1)。
あとは、値1~7までに日月火水木金土と入力していきます。
そして、OKボタンをクリックします。
数式は、
=CHOOSE(WEEKDAY(B3,1),"日","月","火","水","木","金","土")
これで、実は先程のIF+WEEKDAY関数と同じことが出来るのです。
関数のパワープレーも嫌いではありませんが、
ちょっとした関数を知っているとスマートな処理で済むというパターンの1つですね。
今回紹介したのは代表例ですので、
どれかお好きなものを使ってスケジュール表を作ってみてはいかがでしょうか?