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

7/17/2026

Excel。式で指定した値を比較して最初に一致する値を返すのがSWITCH関数です。【SWITCH】

Excel。式で指定した値を比較して最初に一致する値を返すのがSWITCH関数です。

<関数辞典:SWITCH関数>

SWITCH関数

読み方: スイッチ  

分類: 論理

SWITCH関数

SWITCH(式,値1,結果1,[既定または値2,結果2],…)

式で指定した値を比較して最初に一致する値を返す

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”とするだけで、日付を曜日に変更することができます。


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

4/04/2023

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

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

<Excel関数辞典:VOL.78>

今回は、SUMX2MY2関数~SYD関数までをご紹介しております。

SUMX2MY2関数

読み方: サム オブ エックススクエアエド マイナス ワイ スクエアエド  

読み方: サムエックスジジョウマイナスワイジジョウ

SUMX2MY2(配列1,配列2)

Σ(x^2-Y^2)。対応する組の要素の平方差の合計します 



SUMX2PY2関数

読み方: サム オブ エックス スクエアエド プラスワイ スクエアエド  

読み方: サムエックスジジョウプラスワイジジョウ

SUMX2PY2(配列1,配列2)

Σ(x^2+Y^2)。対応する組の要素の平方和の合計します 



SUMXMY2関数

読み方: サム オブ エックス マイナス ワイ スクエアエド  

読み方: サムエックスマイナスワイジジョウ

SUMXMY2(配列1,配列2)

Σ(x-Y)^2。 対応する組の要素の差を2乗して合計します 



SWITCH関数

読み方: スイッチ  

SWITCH(式,値1,結果1,[既定または値2,結果2],…)

式で指定した値を比較して最初に一致する値を返す 



SYD関数

読み方: エスワイディー  

読み方: サムオブイヤーズディジット

SYD(取得価額,残存価額,耐用年数,期)

減価償却費を算術級数法で算出します(日本では利用が認められてない) 

Sum of Year's Digit depreciationの略

3/30/2023

Excel。上位3名のみを、手早くABC判定するにはどうしたらいいの。【TOP3】

Excel。上位3名のみを、手早くABC判定するにはどうしたらいいの。

<SWITCH+RANK.EQ関数>

1位の得点なら「A」。

2位が「B」で3位が「C」として、それ以外は空白とする場合、次の表のように、手早く算出するにはどのようにしたらいいのでしょうか。


やりたいことはシンプルですが、1位~3位がわかるようにして、さらにA・B・Cに置換しなければなりません。


そのため、処理が面倒になりがちです。


そこで、SWITCH関数とRANK.EQ関数を組み合わせることで、手早く算出することができます。


D2に設定した数式は、

=SWITCH(RANK.EQ(C2,$C$2:$C$7,0),1,"A",2,"B",3,"C","")


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


これで、1位はAとして、該当しない場合は、空白というように設定することができました。


SWITCH関数の引数を確認しておきましょう。


SWITCH関数は、「多分岐処理」を行うことができる関数です。


このSWITCH関数の最初の引数は、「式」で、この式の結果をこのあとの引数で判別し設定していきます。


やりたい処理は、1位から3位を算出したいわけです。

そこで、順位を算出するならば「RANK.EQ関数」をつかうことで算出することができます。

RANK.EQ関数をつかえば、仮に1位が複数あった場合でも対応してくれます。

この結果をもとにして、2つ目以降の引数が対応していきます。


2つ目の引数は、「値1」です。

最初の引数の結果が「1」の場合ということなので引数には、「1」と設定します。


3つ目の引数は、「結果1」です。2つ目の引数と合致した場合に、結果1で設定した処理をするわけです。


2つ目の引数の結果「1」だったら、「A」と表示したいので、結果1に設定する値は「A」となるわけです。


あとは、2と3を繰り返し設定します。


そして、1位~3位以外は、空白にしたいので、最後の引数の値に「””(ダブルコーテーション×2)」を設定すれば、数式は完成します。


SWITCH関数は、色々つかってみると、日頃使っている数式がより、わかりやすくなるかもしれませんね。

4/11/2018

Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?【SWITCH】

Excel。Office365のExcel2016で追加された、SWITCH関数っていつ使うの?

<SWITCH関数・CHOOSE関数+RANK.EQ関数>

新しく追加された関数は色々ありますが、
今回ご紹介する『SWITCH関数』が、いつ使うのか?というか、
CHOOSE関数でいいのでは?という感じなので、
CHOOSE関数より便利なところがSWITCH関数にはありますので、
確認してみましょう。

次の表があります。

10店舗の売り上げがありまして、
1位をS。2位をA。3位をBで、4位をCとして、
それ以外は空白という順位を算出した表です。

RANK.EQ関数だけでは、数値による算出しかしてくれませんので、
今回は、CHOOSE関数とRANK.EQ関数を組み合わせることにより、
文字によるランキングを設定することが出来ます。

D3の数式を確認してみましょう。

インデックスには、RANK.EQ(C3,$C$3:$C$12,0)

ランクを算出したいので、RANK.EQ関数をネストしています。

あとは、値1に”S”というように、
今回は、10店舗なので、最終的にD3の数式は、

=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C","","","","","","")

というようになります。

数式の難易度としては高くないのですが、
該当しない順位のところも、””=空白を入力しなくてなりません。

念のため確認してみましょう。

E列を作ってみました。

E3の数式は、
=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C")

先程の数式と違うのは、該当しない順位のセルを空白にしたいので、
””=空白を数式にいれないで作成したものです。

この数式をオートフィルでコピーしてみると、
#VALUE!というエラーが表示されてしまいます。

つまり、CHOOSE関数の欠点は、件数が多くなった場合は、
その件数分の値を必ず、入力しておかないといけない点なのです。

仮に、100店舗あった場合は、96個の””=空白を入力しないといけないわけです。

これは面倒以外の何物でもありません。

そこで、今回登場したのが、『SWITCH関数』

F列には、SWITCH関数を使って算出をしております。

F3のSWITCH関数ダイアログボックスは、次のようになっています。

式には、順位を算出するRANK.EQ(C3,$C$3:$C$12,0)を設定してあります。

これは、先程のCHOOSE関数と同じですね。
値1には、1。これは、1位だったらという意味ですね。

結果1には、”S”。
そして一番違うのは、

結果4の“C”を設定した後の、既定または値5に””=空白を設定している点です。

これは、該当しなければ、””という意味になります。

つまり、該当しない場合は空白にしたいわけですから、
この一つの引数だけとなります。

F3の数式は、
=SWITCH(RANK.EQ(C3,$C$3:$C$12,0),1,"S",2,"A",3,"B",4,"C","")
ということで、””=空白の個数が少ないですよね。

仮に店舗数が100店でも、96個の””=空白を設定する必要がありません。

このように、データ量が多い場合などでは、
CHOOSE関数を使うよりも、
新しくOffice365のExcel2016で登場した、
SWITCH関数を使うと楽に算出することが出来るようですね。