エクセルで曜日を表示させたいことはよくあります。
どのようにして表示させていますか?
Aの列に日をBの列に曜日を表示させる場合を考えてみます。
1.最も簡単な方法
Bの列に=A2(二行目の場合)として日であるA列を参照しておきます。
B列に「セルの書式設定」の「表示形式」からユーザー定義を選び「aaa」の書式を設定します。
2.WEEKDAY関数を使う方法(書式は1.と同じ)
Bの列に=WEEKDAY(A2,1)とします。
ここでWEEKDAY関数のパラメータの意味は
1もしくは省略すると 1 (日曜) 〜 7 (土曜) の範囲の整数。
2とすると 1 (月曜) 〜 7 (日曜) の範囲の整数。
3とすると 0 (月曜) 〜 6 (日曜) の範囲の整数。 となります。
3.TEXT関数で変換する方法 書式は標準
Bの列に=TEXT(A2,"aaa")
TEXT関数は数値を文字に変換する関数ですが、ここではA2にある日付のシリアル値を書式aaaで変換しています。
4.条件分岐で書く方法 書式は標準
Bの列に=IF(WEEKDAY(A2)=1,"日",IF(WEEKDAY(A2)=2,"月",IF(WEEKDAY(A2)=3,"火",IF(WEEKDAY(A2)=4,"水",IF(WEEKDAY(A2)=5,"木",IF(WEEKDAY(A2)=6,"金",IF(WEEKDAY(A2)=7,"土"," ")))))))
一番直感的でわかりやすいとおもいますが、どうでしょう?
WEEKDAY関数の第二パラメータを省略していますので1が日曜になっています。
5.VLOOKUP関数でがんばる方法 書式は標準
Bの列に=VLOOKUP(WEEKDAY(A2),$I$2:$J$8,2,FALSE)
参照する下の表を例えばI2:J8に作っておく。WEEKDAY関数で参照すべきキーを求め、表を引く方法です。「鶏を割くに焉んぞ牛刀を用いん」という感じでしょうか。
I列 J列
1 日
2 月
3 火
4 水
5 木
6 金
7 土
書式aaaは「日」 書式aaaaは「日曜日」 書式dddは「Sun」 書式 ddddは「Sunday」となります。
なんでaとdなんだろうなぁ、aやdの桁数もどうしてこうなるのか判らないなぁ。。。。関連付けがないと覚えにくいよね。
6.同じセルに日付と曜日を表示する方法
書式をyyyy/mm/dd(aaa)のように設定する。( )はなくてもいい。
これは番外です。
昔(やだねぇ)数学の雑誌に「エレガントな解法求む」という欄があって、ある問題に対して読者に解法を求めるのだが、ただの解答ではなく、「エレガント」なものを要求していた。
ここで言うと、1あるいは6の方法がそうなのかな?
数学は確かにちょっと見方を変えるととたんに見通しがよくなって、キレイな解答を得ることができることがあったね。科学者(プログラマも含むかな)は一般にキレイなものを求めるからね。キレイとは汎用(特別な場合がなく)で見通しのよい(数式の形のよい)ものですかね。統一場理論などはそうなんだろうね。
ただ、俺のような凡人は4のような、泥臭くても確実にできて、判りやすいものが好きだな。
- Calendar
<< May 2024 >> Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- search this site.
- tags
-
- 未分類 (374)
- archives
-
- 201401 (2)
- 201305 (1)
- 201303 (1)
- 201301 (1)
- 201212 (1)
- 201211 (1)
- 201210 (1)
- 201209 (3)
- 201208 (4)
- 201207 (2)
- 201206 (3)
- 201205 (5)
- 201204 (1)
- 201203 (2)
- 201107 (1)
- 201105 (2)
- 201104 (4)
- 201007 (3)
- 201006 (5)
- 201005 (5)
- 201004 (10)
- 201003 (1)
- 201002 (21)
- 201001 (31)
- 200912 (31)
- 200911 (8)
- 200910 (11)
- 200909 (4)
- 200908 (1)
- 200907 (2)
- 200906 (1)
- 200905 (5)
- 200904 (5)
- 200903 (3)
- 200902 (1)
- 200901 (2)
- 200812 (10)
- 200811 (4)
- 200810 (5)
- 200809 (10)
- 200808 (6)
- 200807 (9)
- 200806 (15)
- 200805 (31)
- 200804 (30)
- 200803 (31)
- 200802 (29)
- 200801 (31)
- 200712 (31)
- 200711 (30)
- 200710 (31)
- 200709 (30)
- 200708 (31)
- 200707 (31)
- 200706 (30)
- 200705 (31)
- 200704 (30)
- 200703 (31)
- 200702 (28)
- 200701 (31)
- 200612 (31)
- 200611 (30)
- 200610 (30)
- 200609 (27)
- 200608 (7)
- 200607 (1)
- recent trackback