ラベル weekday関数 の投稿を表示しています。 すべての投稿を表示
ラベル weekday関数 の投稿を表示しています。 すべての投稿を表示

6/13/2026

Excel。翌週水曜日にまとめて出荷したいので、翌週水曜日をどう求めたらいい【weekday】

Excel。翌週水曜日にまとめて出荷したいので、翌週水曜日をどう求めたらいい

<WEEKDAY関数>

毎週水曜日になったら、まとめて出荷したい。


そこで、翌週の水曜日の日付をどうしたら、求めることができるのでしょうか。


次の表で説明します。

 

A列には、販売日が入力されています。


C列には、出荷日が入力されています。


火曜日ならば、翌日が水曜なので、販売日に+1すればいいのですが、木曜日は次の水曜日までならば、販売日に+6する必要があります。


曜日ごとに、足す数値がかわります。


ここがポイントですね。


では、どのようにしたらいいのでしょうか。

=7-WEEKDAY(A2,14)
 

曜日ごとで足す数が異なります。


その数式を、まずは考えてみましょう。


E2に

「=7-WEEKDAY(A2,14)」という数式をつくってみました。


WEEKDAY関数は、曜日を決まった数値で表すことができます。


WEEKDAY関数の最初の引数は、シリアル値。

つまり日付ですね。


2つ目の引数は、種類です。

種類は、上記表にあるように、どの曜日を1としてはじめるかを設定することができます。


今回は、水曜日にしたいわけです。

火曜日ならば、+1で木曜日ならば+6にするには」の木曜日を1として水曜日を7にする「14」を選びます。


そして、7からその値を引いてあげればいいわけです。


それがE列というわけです。


例えば、木曜日ならば、WEEKDAY関数の結果は1

7-1で6


この6を足せばいいというわけです。

=A2+7-WEEKDAY(A2,14)

よって、C2の数式は、


=A2+7-WEEKDAY(A2,14)


と設定すればいいわけですね。


あとは、オートフィルで数式をコピーすればいいというわけです。

4/26/2026

Access。Excelで曜日を表示するにはTEXT関数。Accessではどうするの【Weekday】

Access。Excelで曜日を表示するにはTEXT関数。Accessではどうするの

<Access>

日付から曜日を表示したい場合、Excelだと、TEXT関数を使う方法があります。


次の表で確認してみましょう。


A列に日付が入力してあります。このよう日がB列にあります。


B2には、

=TEXT(A2,"aaaa")

というTEXT関数をつかった数式を設定しております。


TEXT関数は表示形式の関数です。

”aaaa”というのは、日付を”○曜日”と曜日を表示することができます。


では、Accessは、どのようにしたらいいのでしょうか。


Accessには、TEXT関数はありません。


テーブルの日付を表示するために、クエリをつくります。


クエリデザインをつかって、クエリをつくります。


演算フィールドをつくります。

曜日: WeekdayName(Weekday([日付]))


実行して確認してみましょう。


曜日を表示することができました。


クエリの演算フィールドを確認します。

曜日: WeekdayName(Weekday([日付]))


WeekdayName関数は、

WeekdayName(曜日番号, モード, 週の開始曜日)

という引数を持っていて、曜日番号に基づいた曜日名を表示します。


曜日番号は、Weekday関数で求めますので、基本的には、WeekdayName関数とWeekday関数はペアで使うことになります。


そのWeekday関数は、

Weekday(日時, 週の開始曜日)

という引数をもっています。


2つ目の引数の「週の開始曜日」を省略すると、日~土で割り振られます。


このような方法をつかうことで、Accessの場合、日付から曜日を表示することができます。

11/28/2025

Excel。日付から曜日を求めるWEEKDAY関数だけでは曜日を表示できません【WEEKDAY】

Excel。日付から曜日を求めるWEEKDAY関数だけでは曜日を表示できません

<WEEKDAY関数>

日付から曜日を求める関数があります。


それがWEEKDAY関数です。


このWEEKDAY関数は、日とか月とかというような文字ではなくて、日曜日を1、月曜日を2というような数値で表示する関数です。


WEEKDAY関数は、2つ目の引数の種類を変えることによって、何曜日から始めるのかを決めることができます。


そこで、数値で表示されても、曜日名がわからないと何が何だかということになってしまうので、色々な関数と組み合わせます。

WEEKDAY関数
 

B2の数式は

WEEKDAY関数をつかった場合です。

=WEEKDAY(A2,1)

結果は、数値として表示されています。

これでは、何曜日か一目ではわかりません。


C2の数式は、

IF関数とWEEKDAY関数を使った場合です。

=IF(WEEKDAY(A2,1)=1,"日",IF(WEEKDAY(A2,1)=2,"月",IF(WEEKDAY(A2,1)=3,"火",IF(WEEKDAY(A2,1)=4,"水",IF(WEEKDAY(A2,1)=5,"木",IF(WEEKDAY(A2,1)=6,"金","土"))))))


とんでもなく、長い数式になっています。

これでは、可読性が悪いですし、ミスも起こりやすくなります。


それならば、IFS関数をつかってみたらどうなるのでしょうか。


D2の数式は、IFS関数とWEEKDAY関数をつかっています。


=IFS(WEEKDAY(A2,1)=1,"日",WEEKDAY(A2,1)=2,"月",WEEKDAY(A2,1)=3,"火",WEEKDAY(A2,1)=4,"水",WEEKDAY(A2,1)=5,"木",WEEKDAY(A2,1)=6,"金",TRUE,"土")


IF関数よりかは、IFS関数はIFの中にIF関数をいれていないので、可読性は改善されていますが、WEEKDAY関数が曜日ごとにでてきますので、作成時にミスを起こす可能性は高いかと思われます。


WEEKDAY関数を何度もつかうというのが、可読性が悪化する要因ならば、LET関数をつかったらどうなるのか、確認してみましょう。


LET関数とWEEKDAY関数を組み合わせたのが、E2の数式です。


=LET(yb,WEEKDAY(A2,1),IF(yb=1,"日",IF(yb=2,"月",IF(yb=3,"火",IF(yb=4,"水",IF(yb=5,"木",IF(yb=6,"金","土")))))))


だいぶ、改善されましたが、LET関数自体の馴染みがないので、理解する必要がありそうです。


なお、LET関数は、数式内で変数を定義し、その変数を繰り返し利用できる関数です。

これにより、同じ計算や値を何度も書く必要がなくなり、数式の可読性や効率が大幅に向上します。


LET関数の引数は、=LET(変数1, 値1, 変数2, 値2, ..., 計算式) となっており、最初に変数とその値を定義し、最後にその変数を用いた計算式を記述する関数です。


それならば、WEEKDAY関数が何度も出てこない関数はないものでしょうか。


F2には、SWITCH関数をつかってみました。


=SWITCH(WEEKDAY(A2,1),1,"日",2,"月",3,"火",4,"水",5,"木",6,"金",7,"土")


IF関数やIFS関数をつかうよりも、可読性もいいですし、数式自体もシンプルですね。


さらに、シンプルになるのが、G2のCHOSE関数を使った場合です。


=CHOOSE(WEEKDAY(A2,1),"日","月","火","水","木","金","土")


CHOOSE関数は、SWITCH関数とことなり、1ならばという設定をしなくても、自動的に1ならばという設定になっています。


これまでは、WEEKDAY関数をつかうと、数値が算出されて、曜日がわからないので、他の関数と組み合わせていましたが、一番効率がいいのは、TEXT関数だと思います。


H2の数式は、

=TEXT(A2,"aaa")

たったこれだけです。


TEXT関数は、表示形式を反映する関数です。

”aaa”とするだけで、日付を曜日に変更することができます。


関数の組み合わせによって、結果は同じですが、可読性・修正しやすい数式のほうがいいように思えますね。

5/10/2024

Excel。1週間分をまとめて月曜日に出荷するので、翌週の月曜日を手早く、算出したい。【next monday】

Excel。1週間分をまとめて月曜日に出荷するので、翌週の月曜日を手早く、算出したい。

<WEEKDAY関数>

手続きした日から、翌週の月曜日にまとめて出荷するとした場合、翌週の月曜日をどのようにしたら、手早く算出することができるのでしょうか。

翌週の月曜日

出荷日は、1週間分をまとめて月曜日に出荷するので、翌週の月曜日を知りたいわけです。


A列には、手続き日を入力しています。


2024/5/6は月曜日です。

月曜日ならば、翌週の月曜日である、2024/5/13と表示したい。


そして、火曜から日曜までが、翌週の月曜日である、2024/5/13と表示したいわけです。


まず考え方ですが、月曜日ならば、翌週月曜日の日付を算出したいわけです。

単純に「+7」してみます。


ただ、火曜日~日曜日までは、「+7」したら月曜日になるように、減算させる必要があります。


そこで、曜日を数値として算出してくれるWEEKDAY関数をつかうことで、曜日ごとに減算する量を調整することができます。


このような考え方で、C2には、次の数式をつくってみました。

=A2+7-(WEEKDAY(A2,11)-1)


A2は2024/5/6

2024/5/6に+7するので、2024/5/13


WEEKDAY(A2,11) ですが、2番目の引数の種類は、11番にしました。


別に、2番でもいいのですが、翌週火曜日などに修正する時に1の位だけを変えればいいので、11番を採用しました。


11番は、月曜日を1として日曜日を7と算出してくれます。


ですから、

(WEEKDAY(A2,11)-1) は、1-1 で「0(ゼロ)」という結果になります。


2024/5/13-0ということですから、2024/5/13と翌週の月曜日を算出することができたというわけです。


A3の2024/5/7の場合でも確認しておきましょう。


2024/5/7+7なので、2024/5/14です。


(WEEKDAY(A3,11)-1) は、2-1 ですから「1」

2024/5/14-1 で、2024/5/13 と翌週の月曜日を算出できます。

12/05/2023

Excelの様々な関数の読み方や引数などを紹介。今回は、WEBSERVICE関数~WEIBULL.DIST関数です。【dictionary】

Excelの様々な関数の読み方や引数などを紹介。今回は、WEBSERVICE関数~WEIBULL.DIST関数です。

<Excel関数辞典:VOL.89>

今回は、WEBSERVICE関数~WEIBULL.DIST関数までをご紹介しております。

Excel関数辞典

WEBSERVICE関数

読み方: ウェブサービス  

分類: Web 

WEBSERVICE(url)

XML形式のデータから必要な情報だけを取り出す 



WEEKDAY関数

読み方: ウィークデイ  

分類: 日付時刻 

WEEKDAY(シリアル値,[種類])

日付から曜日に該当する数値を算出する 



WEEKNUM関数

読み方: ウィークナンバー  

分類: 日付時刻 

WEEKNUM(シリアル値,[週の基準])

日付の週の番号を算出します 



WEIBULL関数

読み方: ワイブル  

分類: 互換性 

WEIBULL(x,α,β,関数形式)

ワイブル分布の累積確率か確率密度を算出します 



WEIBULL.DIST関数

読み方: ワイブル・ディスト  

読み方: ワイブル・ディストリビューション

分類: 統計 

WEIBULL.DIST(x,α,β,関数形式)

ワイブル分布の累積確率か確率密度を算出します 

11/21/2023

Excel。WEEKDAY関数で算出された曜日の数値を、「日」のように手早く表示するには【day of week】

Excel。WEEKDAY関数で算出された曜日の数値を、「日」のように手早く表示するには

<WEEKDAY関数+表示形式>

曜日を算出することができるWEEKDAY関数ですが、算出後、曜日に該当する数値を算出する関数なので、いったいこれが、何曜日なのか、一目ではわかりません。


どのようにしたら「日」のように、手早く表示することができるのでしょうか。


用意した表をつかって確認します。


B2に設定した数式は、

=WEEKDAY(A2,1)

オートフィルで数式をコピーしています。


実は、この数値を「日」のようにするには、表示形式をつかうことで、簡単に設定することができます。


B2:B6を範囲選択して、「セルの書式設定」ダイアログボックスを表示します。


表示形式タブの「ユーザー定義」に「aaa」と設定します。


あとは、OKボタンをクリックします。


これで、「日」のように、曜日が一目でわかるようにできました。


ただし、これをやるためには、ある条件があります。


それは、WEEKDAY関数の2つ目の引数「種類」を「1」か「17」の日曜日が「1」から始まる場合にだけ対応しています。


2~16は、数値こそ算出されますが、「1」を「日」と表示されるようにしか表示形式は対応していません。


よって、「種類」を2~16で設定した場合は、IFS関数などの関数を組み合わせる必要があります。

7/31/2023

Excel。手早く曜日ごとの売上高を集計したいけど、どのようにしたらいいの。【by day of the week】

Excel。手早く曜日ごとの売上高を集計したいけど、どのようにしたらいいの。

<SUM+IF+WEEKDAY関数>

曜日ごとに集計したい場合、曜日がわかるように一度数式をつくり、それを条件として集計する方法を行うことがあります。


途中の計算式を作らなくても、SUM関数とIF関数とWEEKDAY関数を組み合わせるだけで、数式一つで、曜日ごとの集計をすることができます。


次の表を用意しましたので、確認していきます。

曜日別集計

B1:C11にデータがあります。

曜日が表示されていれば、SUMIF関数をつかえば、算出することができますが、曜日を表示されていません。


通常、日付に基づいた曜日を算出させてから、曜日を条件として集計するわけですが、それでは、数式を複数作る必要があります。


そこで、G2には、次の数式を設定しています。

=SUM(IF(WEEKDAY($B$2:$B$11,1)=E2,$C$2:$C$11,0))


オートフィルで数式をコピーしています。

これで、曜日ごとの売上高の集計を算出することができました。


数式を説明すると、

WEEKDAY($B$2:$B$11,1)=E2

WEEKDAY関数は、曜日を算出する関数です。


WEEKDAY関数の2つ目の引数にある「種類」を1と設定することで、1を日曜日で7を土曜日として数値を割り振ってくれます。


E列のNOをつかって、合致することで、何曜日なのかを判断することができます。


そこで、IF関数をつかうことで、合致しなかった場合は、「0(ゼロ)」とすることができます。

最後に、SUM関数をつかって、集計します。


以前は、この数式は、配列関数で作成したのですが、Microsoft365では、普通に数式をつくるだけで、対応してれます。


本当に、合っているのか、念のため確認してみましょう。

A2に曜日を算出する数式をつくります。

=TEXT(B2,"aaa")


A11まで、オートフィルで数式をコピーしています。

日曜日は、983+874なので、1857とG2の値と合致していることがわかります。


今回紹介した数式ですが、WEEKDAY関数をMONTH関数やYEAR関数にすることで、作業列に算出してから集計しなくても、数式一つで算出することができます。

2/10/2023

Excel。2か月後の最初に来る日曜日を手早く知るにはどうしたらいいの【months later】

Excel。2か月後の最初に来る日曜日を手早く知るにはどうしたらいいの

<EDATE+WEEKDAY関数>

何か月後を知るには、EDATE関数をつかうことで、算出することができます。


EDATE関数をつかえば、2022/10/1の2か月後ならば、2022/12/1と算出することができます。


ただ、EDATE関数では、曜日での調整をすることはできません。


例えば、2か月後の最初に来る日曜日を知りたい場合です。


どのような数式をつくったらいいのか確認していきます。

A2には、「2022/9/25」と入力してあります。


この日は、日曜日です。


2か月後の最初の日曜日の日付をA4に算出していきます。


なお、EDATE関数で2ヶ月後を算出したのが、A7です。

A7の数式は、

=EDATE(A2,2)


A7の日付は、「2022/11/25」と算出されますが、この日は、金曜日です。

この日の後にくる、日曜日を算出したいわけです。


そこで、A4に設定した数式は、

=EDATE(A2,2)+7-WEEKDAY(EDATE(A2,2),11)


これで、算出したのが、A4の「2022/11/27」で、この日は、日曜日です。


ポイントになるのが、「+7-WEEKDAY(EDATE(A2,2),11)」の部分です。


EDATE関数で算出した、何か月後の日付の曜日に、足りない曜日分を和算する作業をしているわけです。


日付を「2022/9/27」で説明していきます。


EDATE関数で算出した結果が、希望の曜日。

つまり、日曜日だった場合は、EDATE関数で算出した結果でいいわけですから、「+(プラス)」する必要はありません。


どうやったら「+0」をつくることができるのかを考えます。


WEEKDAY関数は、種類によって、曜日に番号を振ってくれる関数です。


日曜日が7と算出されれば、7-7で「0」をつくることができます。


WEEKDAY関数の2つ目の引数である「種類」を「11」で設定してあげれば日曜日を「7」と算出することができます。


もし、日曜日でなくて、月曜日で揃えたい場合には、「種類」を「12」に変更すれば、月曜日で揃えることができます。


少し数式が複雑なので、数式タブにある「数式の検証」をつかうことで、どのように算出されているのかを視覚的に確認することもできます。

12/30/2015

Excel。Aggregate。曜日別に金額を集計する方法を知りたいということで。その1。


Excel。曜日別に金額を集計する方法を知りたいということで。その1。

<WEEKDAY&SUMIF関数 編>

ちょっとしたご質問から、
なるほど、確かに現場ではほしいものなんだろうなぁ~というものが先日ありまして、
それが、今回ご紹介する、曜日別に金額を集計する方法なんです。

平日と週末とかでというのは、ありそうですが、
今回は、月曜日なら月曜日というように集計した金額を知りたいそうなんですね。

つまり下記のような表のようにしたいわけです。

ただ、売上表の曜日は、日付が変わったとしても、イチイチ修正したくないので、
日付と連動したいというリクエストも加わっています。

そこで、まず、表を作る所からポイントがありますので、ご紹介していきます。

B列の日付はそのまま入力しております。

C列の曜日ですが、ここは、連動させる必要がありますので、ここは、曜日を算出してくれる、WEEKDAY関数を使って数値を算出しております。

それでは、C4に数式を作っていきます。
WEEKDAY関数ダイアログボックスを表示します。

シリアル値は、B4を入力します。

種類は、1を入力します。

この種類によって、算出される数値が変わっていきます。
今回は、日曜日を1にしたいので、1と入力しております。

ちなみに、

1は、(日曜日=1~土曜日=7)

2は、(月曜日=1~日曜日=7)

3は、(月曜日=0~日曜日=6)


と設定されております。
数式をオートフィルを使ってコピーします。

曜日が数値として算出されました。

これでは、何曜日だかわかりませんので、曜日にしていきたいわけですね。

そこで、IF関数を使うのではなくて、表示形式を使って変えていきます。

C4:C18を範囲選択して、セルの書式設定ダイアログボックスを表示しましょう。

表示形式タブの分類をユーザー定義にして、
種類を aaa と入力してOKボタンをクリックしましょう。

すると、数値が曜日に替わりましたね。

さて、こちらの表は完成しておりますので、集計の表を作っていきましょう。

F4から、日から土と入力した場合はどうなるかを確認してみます。
そして、いよいよ集計する数式をG4に作りますので、SUMIF関数ダイアログボックスを表示していきます。

範囲には、$C$4:$C$18。絶対参照を忘れないように設定しましょう。

検索条件は、F4
合計範囲は、$D$4:$D$18

そして、OKボタンをクリックしましょう。

あれれ?数値が算出されないというかゼロが表示されてしまいましたね。

これは、F列に原因があります。
それは、”日”と直接文字を入力してしまったからです。

では、どうしたらいいのかというと、F4に1と数値を入力しましょう。
そして、1~7まで数値を入力します。

数値に変えた時点で、G4に集計結果が表示されてきましたね。

要するに、C列の曜日は表示形式を曜日にしているだけで、元は数値なわけです。
ですから、F列を文字にしては、ダメで、数値に変える必要があるのです。

だた、数値では、何曜日なのかわかりにくいので、
これを、先程と同じように表示形式を曜日に変えてみましょう。

そして、G4の数式もG10までコピーします。

これで、完成しましたね。

ところで、1が日曜日と表示されている訳です。
実は、1は、表示形式を日付に変えると、1990/1/1になり、曜日が日曜日となっている訳です。

ですので、日曜日を1として算出させるために、WEEKDAY関数の種類を1にした訳です。

ちょっと、長くなりましたが、難易度はそれほど高くありませんので、
機会がありましたら作ってみると面白いですよ。

そうそう、実は、WEEKDAY関数を使わなくても算出することが出来ますので、
次回はその方法をご紹介しましょう。

3/08/2015

Excel。Day of the week 。曜日を求める方法をまとめてみました。


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つですね。

今回紹介したのは代表例ですので、
どれかお好きなものを使ってスケジュール表を作ってみてはいかがでしょうか?

2/18/2015

Excel。Date and day of the week。一つのセルの中に日付と曜日を表示する方法。横一行編


Excel。一つのセルの中に日付と曜日を表示する方法。
横一行編

表示形式のユーザー定義


塗りつぶしたセルを数えるという方法をご紹介したら、クライアントさんから、
縦の表でやってみたんだけど、
日付だけでなく曜日も表示したいんだけどとリクエストがありました。

まぁ隣の列に曜日の列を作る方が楽のような気もしましたが、
確かに日付と曜日を一つのセル内に表示させたいということはあるでしょうから、
今回はそのやり方をご紹介していきます。

で、

それだけでは、非常に簡単すぎるので、アレンジして、
土曜日なら青色。日曜日なら赤色の塗りつぶしが設定されるようにしちゃおうと思います。

下記に最終完成までをのせますので、まずはご確認ください。

これを順を追って紹介していきます。
まずは、真ん中の、一つのセル内に日付と曜日が表示されている方法からご紹介します。

D3:D13まで日付を入力していきます。3/1でも構いません。

そして、D3:D13までを範囲選択して、セルの書式設定ダイアログボックスを表示します。

分類がユーザー定義で種類がm"月"d"日"となっていますので、m"月"d"日"の直後にクリックして、(aaa)と入力します。

m"月"d"日"(aaa)

と種類には入力されています。
あとは、OKボタンをクリックしましょう。

これで、完成ですね。

これだけでは、あまり芸がないので、
この日付と曜日が表示された状態で、
土曜日なら青を日曜日なら赤で塗りつぶすようにしてみましょう。

D列をF列にコピーしておきます。

このコピーしたF列に設定していきます。

考え方としては、条件付き書式を使うことは決定済みですが、問題となるのは、
どうやったら設定できるのか?ということになりますね。

隣のセルに曜日があって、そのセルには、
TEXT関数を使ってあれば簡単に塗りつぶしの設定が出来るのは、以前書いておりますが、
今回はその手を使うことが出来ませんので、
曜日が土曜日や日曜日と判断させる必要があります。

そこで、登場するのがWEEKDAY関数。


そう、今回は、条件付き書式とWEEKDAY関数の合体技。コラボレーション技になります。

WEEKDAY関数に関しては、以前書いたBLOGに詳細を書いております。
http://infoyandssblog.blogspot.jp/2013/10/excelweekday-weekday.html


さて、F3:F13を範囲選択して、ホームタブの条件付き書式から新しいルールをクリックします。

新しい書式ルールダイアログボックスが表示されます。

数式を使用して、書式設定するセルを決定を選択し、
次の数式を満たす場合に値を書式設定のボックスに、

=weekday(F3,1)=7

と入力します。
そして、書式ボタンをクリックします。

セルの書式設定ダイアログボックスが表示されますので、塗りつぶしタブに移動して、
青系を選択して、OKボタンをクリックします。

新しい書式ルールダイアログボックスに戻りますので再度OKボタンをクリックします。
これで、土曜日に青色の塗りつぶしが設定されましたね。

これを同じように繰り返して、日曜日を作っていきます。
今度は、新しい書式ルールダイアログボックスの、数式を使用して、
書式設定するセルを決定を選択し、次の数式を満たす場合に値を書式設定のボックスに、

=weekday(F3,1)=1

と入力します。

書式は赤系を選択しましょう。すると、日曜日には赤系の塗りつぶしが設定されました。
これで、完成ですね。


なお、WEEKDAY関数ですが、
 今回は1を選びましたので、日曜日が1で土曜日が7を返します。
ちなみに、種類の1は省略することもできます。

ところが…
Excel2010になったら、このWEEKDAY関数の種類が増えたんですね。
曜日ごとに、設定することがExcel2010のWEEKDAY関数では出来るようになりました

種類が 1だと戻り値は、日曜日が1で土曜日が7となる整数
種類が 2だと戻り値は、月曜日が1で日曜日が7となる整数
種類が 3だと戻り値は、月曜日が0で日曜日が6となる整数
種類が11だと戻り値は、月曜日が1で日曜日が7となる整数
種類が12だと戻り値は、火曜日が1で月曜日が7となる整数
種類が13だと戻り値は、水曜日が1で火曜日が7となる整数
種類が14だと戻り値は、木曜日が1で水曜日が7となる整数
種類が15だと戻り値は、金曜日が1で木曜日が7となる整数
種類が16だと戻り値は、土曜日が1で金曜日が7となる整数
種類が17だと戻り値は、日曜日が1で土曜日が7となる整数

と用途によって様々に設定できるようにExcel2010から変わっております。

10/12/2013

Excel。WEEKDAY関数を使って土曜日に青・日曜日に赤で塗る ユーザー定義書式+条件付き書式+WEEKDAY関数


Excel。WEEKDAY関数を使って
土曜日に青・日曜日に赤で塗る

ユーザー定義書式+条件付き書式+WEEKDAY関数

Excelで、スケジュール表などを作っているときに、土曜日には青色で、日曜日には赤色で、
月がわかっても自動的にセルに色を塗ってみるというのを以前ご紹介しましたが、
表示形式を使った場合、条件付き書式では、塗ることが出来ませんでした。

そこで、今回は、WEEKDAY関数を使用することにより、
表示形式でも、条件付き書式が使えることを確認してみましょう。

下記のような表があり、まずは、表示形式の列に、ユーザー定義書式で、
曜日を表示していきましょう。

まずは、表示形式から作っていきましょう。
B3をクリックして、
=A3と入力すると、9月1日と表示されます。
これを、ユーザー定義書式で曜日に表示形式を変更していきます。
B3をクリックして、セルの書式設定ダイアログボックスを表示しましょう。
Ctrl+1というショートカットキーでも表示できますね。

表示形式タブのユーザー定義が選択されているのを確認して、種類に
aaa

aを3個入力すると、曜日に表示形式が変更されます。

OKボタンをクリックした後、オートフィルでコピーしましょう。

これで、条件付き書式とWEEKDAY関数を使って、
土曜日に色を塗るのでもいいのですが、WEEKDAY関数の動きを見てみましょう。

C3をクリックして、WEEKDAY関数のダイアログボックスを表示しましょう。

シリアル値はA3をクリックします。
種類には、1を入力します。
OKボタンをクリックします。オートフィルでコピーします。

これで、まずは完成。
ちょっと、脱線しますが、WEEKDAY関数の種類がわかりにくいですよね。
それぞれの用途におうじて、設定を変えることが出来ますので、表にしてみましょう。

このように1~3を選択すると戻り値が変わるわけです。
今回は1を選びましたので、日曜日が1で土曜日が7を返します。
ちなみに、種類の1は省略することもできます。
ところが…
Excel2010になったら、このWEEKDAY関数の種類が増えたんですね。
それをご紹介します。
曜日ごとに、設定することがExcel2010のWEEKDAY関数では出来るようになりました。

って、ダイアログボックスに書いていない…

さて、元に戻りまして、WEEKDAY関数を使用したら、土曜日は7という数字を返すわけです。
つまり条件付き書式で、7だったら、青色を塗る設定をしてあげればいいわけですね。
それでは、早速やっていきましょう。
今回は、B3:B17を範囲選択をして、条件付き書式を設定していきます。

条件付き書式の新しいルールをクリックします。

数式を使用して、書式設定するセルを決定を選択して、ボックスに

=WEEKDAY(A3,1)=7

と入力します。あとは、書式ボタンをクリックして、青色を設定していきます。
これで完成です。


ちょっと、大変でしたが青色を付けることができました。
日曜日は赤色なので、同じようにせってしますが、

=WEEKDAY(A3,1)=1

と7を1と変更すればOKですね。