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

8/07/2022

Excel。CHOOSE関数は、引数リストの何番目かの値を抽出することができます。【CHOOSE】

Excel。CHOOSE関数は、引数リストの何番目かの値を抽出することができます。

<関数辞典:CHOOSE関数>

CHOOSE関数

読み方: チューズ  


分類: 検索/行列 

CHOOSE関数


CHOOSE(インデックス,値1,[値2],…)


引数リストの何番目かの値を抽出します 

11/24/2021

Excel。その作業CHOOSE関数なら、VLOOKUP関数より手早くできるかも【function: CHOOSE】

Excel。その作業CHOOSE関数なら、VLOOKUP関数より手早くできるかも

<CHOOSE関数>

VLOOKUP関数のように、検索値に合致したデータを検索抽出してくれる関数というのがいくつかあります。

ちょっとしたリストの時には、VLOOKUP関数をつかわなくても、手早く設定できる関数があります。

そのひとつが「CHOOSE関数


Excel VBAでは、「CHOOSE」を作業処理の分岐でよくつかうので、プログラミングになれている人には、VLOOKUP関数よりも理解しやすいかもしれませんね。


VLOOKUP関数は、検索結果を表示するだけですが、CHOOSE関数は、数式を使って、状況に応じた値を算出することもできます。


CHOOSE関数の読み方は「チューズ」です。

所属は、「検索・行列」です。

CHOOSE関数の引数も確認しておきましょう。


CHOOSE(インデックス,値1,[値2]…)

引数の値の数ですが、254個設定することができます。


今回は、シンプルな使い方を確認しましょう。


D2には、

=CHOOSE(C2,"庭掃除","窓掃除","掃き掃除")

という数式が設定されています。オートフィルで数式をコピーした状態です。


VLOOKUP関数でもリストをつくらなくても、抽出処理ができますが、CHOOSE関数の方がスマートに処理することができます。


CHOOSE関数がどのような動きをしているのかというと、引数のインデックスの値と合致するものを値1以降から抽出するという仕組みです。


インデックスが「1」ならば、値1のもの。「2」ならば、値2といった具合です。

なので、今回は、C2に、「2」と入力されているので、インデックスの2に該当する「窓掃除」が表示されたというわけです。


大きなリストである必要がない時などは、CHOOSE関数という方法もありますので、状況によっては、VLOOKUP関数の代わりにつかってみると、数式をコンパクトにすることができるかもしれませんね。

5/09/2019

Excel関数辞典 VOL.11。CHOOSE関数~COMBINA関数

Excel関数辞典 VOL.11。CHOOSE関数~COMBINA関数

<Excel関数>

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

CHOOSE関数やCODE関数はお馴染みの関数ですね。

CHOOSE関数
チューズ
引数リストの何番目かの値を抽出
CHOOSE(インデックス,値1,値2…)
値は、254個まで設定可能です。


CLEAN関数
クリーン
文字列中に含まれる制御文字を取り除く
CLEAN(文字列)


CODE関数
コード
文字を文字コードに変換する
CODE(文字列)


COLUMN関数
カラム
セルの列番号を算出
COLUMN(範囲)


COLUMNS関数
カラムズ
セル範囲の列数を算出
COLUMNS(範囲)


COMBIN関数
コンビネーション
組み合わせの数を算出
COMBIN(総数,抜き取り数)


COMBINA関数
コンビネーション・ エー
重複組み合わせの数を求める
COMBINA(総数,抜き取り数)


YandSシステムズのExcel関数一覧表
https://sites.google.com/view/yandsssystems/function?authuser=0

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関数を使うと楽に算出することが出来るようですね。

1/14/2018

Excel。1位~3位と最下位の順位によって判定評価の表示を変えたい【Ranking】

Excel。1位~3位と最下位の順位によって判定評価の表示を変えたい

<CHOOSE+RANK.EQ関数>

次のような表があります。

C列の売上高の1位~3位には、褒賞が出るので、
その金額を表示して、最下位の店舗には、
「改善案提出」という文字を表示したいというリクエストを
表現した表なのですが、
このような表を作るのには、どうしたらいいのでしょうか?

当然、順位を算出する必要があると考えますので、
RANK.EQ関数を使うことはわかりますが、
仮に、D列に順位を算出して、
それをもとに、E列にIF関数を使って褒賞欄を作って判定させるという方法を
考えると思いますが、

IF関数を使って、
1位だったら、2位だったら、3位だったらという分岐まではいいのですが、
結構面倒なのが最下位。

MIN関数を使って、その数値を同じだったら、
「改善案提出」と表示させるとすれば、MIN関数を使わないといけませんし、
それだったら、RANK.EQ関数で算出した順位は無駄になりますし、
かといって、店舗数を数えて、
その数と最下位の数値が合致するものを探すという条件を作るのも
COUNT関数を使ったりしてと、数式自体が煩雑になってしまします。

そこで、今回のような場合に有効なのが、CHOOSE関数です。

CHOOSE関数は、1だったら、2だったらというように、
多分岐処理をさせることが得意な関数なのです。

ということで、今回は、CHOOSE関数と順位を算出する、
RANK.EQ関数を組み合わせたテクニックでやってみたいと思います。

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

インデックスには、RANK.EQ関数をネストしますので、
ボックス内をクリックして、
RANK.EQ関数ダイアログボックスを表示させましょう。

数値には、C2ですね。

参照は、全体の中でという意味ですから、
売上高ということで、$C$2:$C$9。

オートフィルで数式をコピーしますので、
絶対参照を忘れないように設定しましょう。

順序は、0を入力します。降順のランキング。つまりベスト順ですね。

ここで、OKボタンをクリックしてはいけませんね。
まだCHOOSE関数の数式を作っている最中ですから、
数式バーを使って、CHOOSE関数に戻りましょう。

値1は、1だったらというボックスですから、
今回は、1位だったらという意味になりますので、3万と入力します。

値2と値3にも表示したい文字を入力します。

値4~値7は、4位~7位までは何も表示しませんので、「””(空白)」を入力します。

そして、最後は最下位の8位には、”改善案提出”と入力しましょう。

OKボタンをクリックして、オートフィルを使って数式をコピーしましょう。

これで完成しましたね。

なお、D2の数式は、
=CHOOSE(RANK.EQ(C2,$C$2:$C$9,0),"3万","1.5万","1万","","","","","改善案提出")

数式バーで手入力もいいですが、
4位~7位までの空白の数を打ち間違える可能性が高いので、
ダイアログボックスをつかうほうがいいかもしれませんね。

このように、順位を算出したあとの判定をIF関数を使ってもいいのですが、
CHOOSE関数を使ってみるという方法もありますので、
何か機会がありましたら使ってみてはいかがでしょうか?

3/05/2017

Excel。Quarter。4月-3月の年度を四半期ごとに集計するにはどうしたら簡単に算出できるの?

Excel。4月-3月の年度を四半期ごとに集計するにはどうしたら簡単に算出できるの?

<MONTH+CHOOSE関数&SUMIF関数>


次の表があります。

A列には、日付があって4月-3月の決算で行っています。

そこで、B列の売上高を各四半期別に集計するには、
どうしたら簡単に算出できますか?
というのが今回のリクエスト。

今回のサンプルのようにデータが少なければ自力で、
判別できる数値とかを入力していけばいいのですが、
現場ではそうはいきませんね。

集計することを考えると、
条件付きで合計値を算出したいわけなので、
登場するのはSUMIF関数。

となると、どうやったら条件となる、
4-6月を1。7-9月を2。10-12月を3。
そして翌年の1-3月を4とすることが出来るのかというのが、
今回のポイントになるわけですね。

なお、J3:J6は、数値のみが入力されていて、
表示形式で、第○四半期と表示されるようにしております。

表示形式は次のように設定しております。

種類には、
"第"0"四半期"
と設定することによって、第○四半期と表示することが出来ますよね。

さて、いよいよ年度の四半期を求めることをしていきます。

4-6月をどうやったら1に出来るのかを考えてみましょう。

そして現場ではミスを抑制したいこともありますので、
このような数式が煩雑になりそうな場合には、
計算列を作成しておくことをお勧めします。

四半期を分けることが区別できるパーツとしては、”月”ですよね。

日付から“月”を求めることが出来るMONTH関数が登場します。

まず、D列にMONTH関数で月を算出してみましょう。

D3の数式は、

=MONTH(A3)

この月を四半期の数値に置換するようにしてあげますので、
ここで、CHOOSE関数が登場します。

E3に数式を作成しますが、
CHOOSE関数ダイアログボックスでもいいのですが、
手入力で作れますので、下記のように数式を作成します。

=CHOOSE(D3,4,4,4,1,1,1,2,2,2,3,3,3)


このCHOOSE関数ですが、
D3が1だったら最初の数値である4が算出されます。

CHOOSE関数のダイアログボックスだと、このようになっています。

E列に、それぞれの四半期を判別する数値が算出することが出来ましたので、
このE列の値を使って、
I列にSUMIF関数を使って四半期ごとの合計値を算出していきます。

それでは、I3をクリックして、SUMIF関数ダイアログボックスを表示しましょう。

範囲は、$E$3:$E$12
検索条件は、H3
合計範囲は、$B$3:$B$12
と設定します。またオートフィルで数式をコピーしますので、
絶対参照を忘れないようにしましょう。

OKボタンをクリックして、オートフィルで数式をコピーして完成ですね。

I3の数式は、

=SUMIF($E$3:$E$12,H3,$B$3:$B$12)

ですね。

なお、MONTH関数とCHOOSE関数を
まとめていっぺんにしてしまうこともできますので、
C列に数式を作成してみました。

C3の数式は、
=CHOOSE(MONTH(A3),4,4,4,1,1,1,2,2,2,3,3,3)
とすることもできますので、参考にしてみてください。

7/15/2016

Excel。Rankings。成績TOPをSとして次をAとした評価表を作成したい


Excel。成績TOPをSとして次をAとした評価表を作成したい

<RANK.EQ関数とCHOOSE関数>


アルファベットの評価表を作りたいというお話を受けまして、
なんでも、一番いい成績をスペシャルのSとして、次の成績がAとしていきたい。
そして、同点ならば、同じアルファベットのランキング。というような評価表。
順位表を作成したいというものでして。

なかなか、難題ですよね。

イメージがし難いと思いますので、下記のような表を作りたいわけです。

さて、どうしたらいいでしょうかね?

IF関数でしょうか?一番大きい数値ならSとかですかね?
けど、一番大きな数値はSとは出来ても、2番目。3番目はどうしましょうか?

そこで、このような場合、つまり多分岐するような場合には、
IF関数では太刀打ちが難しいので、CHOOSE関数を使ってあげると、いいように考えられます。

では、CHOOSE関数を使うとして考えた場合ですが、
CHOOSE関数の特性を知っておく必要がありますね。

CHOOSE関数は、1だったら、○○。2だったら、○○。
というように1・2・3という数値を用意してあげる必要があります。

では、どのようにしたら、1とか2という数値を用意できるのでしょうか?

成績が1位2位という順位を求めれば、1とか2とかという数値を用意できそうですね。

となると、RANK.EQ関数が使えそうですね。

そして、このような場合、一つの計算式にすると、煩雑になったり、わかりにくくなってしまうので、
作業列を作って、一度順位をRANK.EQ関数で算出させて、
それから、CHOOSE関数を使って、
アルファベットのランキングに変化させるという2段階で作っていきましょう。

F3をクリックして、RANK.EQ関数ダイアログボックスを表示しましょう。

数値は、C3
参照は、$C$3:$C$12。絶対参照を忘れないように設定しましょう。
順序は、0
を入力してOKボタンをクリックしましょう。

順位が算出されますので、オートフィルで数式をコピーしましょう。

F3の数式は、

=RANK.EQ(C3,$C$3:$C$12,0)

となっています。

順位がまずは算出できましたね。4位が2個ありますね。その代り5位はありません。

さていよいよ、本題のABC順位を求めていきましょう。

D3にCHOOSE関数ダイアログボックスを表示しましょう。

インデックスには、先程順位を算出した、F3。

値1から順々に、S・A・Bと入力していきます。今回は、Jまでになります。

あとは、OKボタンをクリックしましょう。そして、オートフィルで数式をコピーしていきます。
数式は、

=CHOOSE(F3,"S","A","B","C","D","E","F","G","H","I","J")

となっています。

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

このようにすると、スペシャルのSから始めることができますよ。

なお、どうしても、作業列を作りたくない場合は、このような数式になりますね。

=CHOOSE(RANK.EQ(C3,$C$3:$C$12,0),"S","A","B","C","D","E","F","G","H","I","J")

これでもいいけど、一目でわかりにくいですよね。
現場では作業効率も考えないといけませんので、ケースバイケースで作成してみてください。

6/07/2016

Excel。quarter。日付から上期下期そして四半期も一気に入力できる方法


Excel。日付から上期下期そして四半期も一気に入力できる方法

<IF関数+AND関数+YEAR関数とCHOOSE関数>


少し前に、年表示ではなくて、年度表示をする方法をご紹介したのですが、

知人から、
「年度だけじゃなくて、ついでに、日付を入れたら、上期・下期。
さらには、どの四半期なのかも、表示してくれるようにしたらいいのに。」

と、いっておりましたので、じゃあ、やってみましょうか。
ということで、今回は下記のような表を作ってみたいと思います。

それでは、下記の表をご覧ください。

今回は、4月1日を年度初日として、翌年の3月31日までを一年度としております。

B列に日付を入力すると、
自動的にC列には、上期・下期が、D列には、第何四半期が算出されるようになっております。

では、まずは、C列から考えてみることにしましょう。

C列は、上期か下期かを判断することになりますから、
ここには、IF関数を使ってあげるといいように思えますね。

そして、条件ですが、4月1日~9月30日が上期にあたるわけですね。

けども、【月】が4月~9月だけでも上期か下期かの判断ができますから、
YEAR関数で算出することができます。

それでは、C2にIF関数ダイアログボックスを表示しましょう。

先に、真の場合と偽の場合を設定しておきます。
真の場合には、”上期”。
偽の場合には、”下期”

そして、論理式を作っていきます。
まず、AND関数ダイアログボックスを表示しましょう。

4月以上、9月以下ですので、

MONTH(B2)>=4 とMONTH(B2)<=9

と設定します。あとは、OKボタンをクリックして、オートフィルでコピーしましょう。

なお、数式は、

=IF(AND(MONTH(B2)>=4,MONTH(B2)<=9),"上期","下期")

となっております。これで、上期と下期を判断することが出来ました。

そして、次の四半期。これが面倒なんですよね。
上期と下期のように判断しようとすると、分岐が多くなって煩雑になってしまいます。
そこで、法則を考えてみましょう。

第と四半期の文字は、&を使って文字連結すればいいとすると、
1~4の数字をどうしたらいいのか?ということになります。

また、1~3が第4四半期。4~6が第1四半期ということになります。

こうなってくると、アレコレするよりも、
CHOOSE関数を使って算出するのが効率的なように感じます。

では、D2をクリックして、CHOOSE関数ダイアログボックスを表示しましょう。

インデックスには、MONTH(B2)と入力します。
そして、値1~順々に4⇒1⇒2⇒3という順番に設定していきます。

なお、数式は、

=CHOOSE(MONTH(B2),4,4,4,1,1,1,2,2,2,3,3,3)

数式だけを見るとわかりにくそうですが、やっていることは単純な関数ですよね。

あとは、第と四半期を付けますので、最終的な数式は、

="第" & CHOOSE(MONTH(B2),4,4,4,1,1,1,2,2,2,3,3,3) & "四半期"

あとは、オートフィルでコピーしてみましょう。

このような関数を作ってあげると、上期と下期。そして四半期を作ることもできますよ。

ただ、4月-3月の場合ですので、ほかの場合は、
修正する必要がありますので、お気を付けくださいませ。

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

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

5/23/2014

Excel。判断分岐多いならIf関数よりChoose関数が楽


Excel。判断分岐多いならIf関数よりChoose関数が楽

Choose関数で4つの判断分岐


以前企業研修のご質問だったと思うんだけど、IF+IF関数を使って、
ABCに判断分岐する方法をご紹介した時に、

判断分岐が多くなると、IF+IF+IF…と大変なので、効率な方法はありませんか?
とありまして、アイディアによっては、Choose関数のほうがIF+IF関数のネストよりも、【楽】かもね。

とお答えしたことがありましたが、

今回は、そのChoose関数を使って、4つの判断分岐をやってみたいと思います。

仕事で使えるExcel講座でも、お話しすることもあるネタですね。

今回は下記の表があります。

F列の評価に次の条件で判断した文字を表示したい訳です。

300点なら、満点
200~299点なら、良
100~199点なら、可
0~99点なら、不可

というルールで、判断するとします。

まずは、IF+IF関数のネストで作ってみましょう。

苦労をすることによって、もっといい方法はないかな?と考えるわけですからね。

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

まず、F2=300という論理式を作って、真の場合は、”満点”。
偽の場合は、また質問を作っていきますので、IF関数を作っていきます。

名前ボックスの▼をクリックして、一覧からIF関数があれば、クリックしましょう。
ネストのIF関数を作っていきますので、
論理式には、E2>=200
真の場合には、”良”

負の場合には、これまた、ネストのIF関数を挿入していきますので、
名前ボックスの▼をクリックして、一覧からIF関数があれば、クリックしましょう。

ネストのIF関数を作っていきますので、
論理式がE2>=100
真の場合には”可”
偽の場合には”不可”

としてOKボタンをクリックすると完成しますので、オートフィルで連続コピーしましょう。
ちなみに、数式は、

=IF(E2=300,"満点",IF(E2>=200,"良",IF(E2>=100,"可","不可")))
なんだか、やっぱり長い数式になりましたね。
ご質問があったように、IF+IF関数のネストだと、
多岐にわたる分岐判断だと複雑化していきますね。

なお、結果は、

これを煩雑化した数式にしないで算出する方法に、
今回紹介するChoose関数を使う方法があります。

それでは、ご紹介していきましょう。
F2をクリックして、Choose関数のダイアログボックスを表示させましょう。
このChoose関数は、1なら、2なら、3なら…という風に判断してくれます。

ですので、ココはアイディアが必要になってくるのですが、今回の分岐の条件が、

300点なら、満点
200~299点なら、良
100~199点なら、可
0~99点なら、不可

ですので、例えば、99点は不可と判定させるには、合計点を100で割った値に+1します。
今回はなぜ+1をするのかというと、このChoose関数。

小数点以下は切り捨てちゃうんですね。


ですので、割っただけだと、0になってしまう訳ですね。

99÷100=0.99+1=1.99 で1として判断。
このように、どうしたら、
1に2に3に…と出来るのかを考えれば多岐にわたる分岐判断は
IF+IF関数よりも簡単になると思います。

Choose関数のダイアログボックスを作っていきましょう。
インデックスには、E2/100+1
値1には、”不可”
値2には、”可”
値3には、”良”
値4には、”満点”

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

そうしたら、オートフィルハンドルを使って連続コピーしましょう。

ちなみに、数式は、
=CHOOSE(E2/100+1,"不可","可","良","満点")
確かに、IF+IF関数のネストよりも煩雑じゃないですよね。

ちょっと複数の判断分岐になるときには、Choose関数。使ってみてはどうでしょうか?

8/14/2013

Excel。3分割に判定する時はCHOOSE+SIGN関数でも出来るけど…


Excel。3分割に判定する時は
CHOOSE+SIGN関数でも出来るけど…

CHOOSE+SIGN関数

↑・→・↓という3分割に判定しようとする。
第2弾。
前回はTEXT関数でのやり方をご紹介しましたが、
今回紹介するCHOOSE+SIGN関数の組み合わせでも出来ますので、ご紹介しましょう。

まず、CHOOSE関数の特長を見てみましょう。
この関数は、インデックスの値によって、1ならば、どうする。2ならばどうする。というように指定できる関数です。
では、このCHOOSEという関数を使って、3分割しようとした場合、1ならば、2ならば、3ならば、というように、1・2・3という数字を算出できる計算式を作る必要があるということに気が付きます。
では、どうやって、求めたらいいでしょうか?
そこで、登場するのが、SIGN関数です。
このSIGN関数は、正の数ならば1を、零であれば0を、負の数ならば、-1を判定し算出してくれるのです。つまり、今回から前回を引いて、今回の成績がよければ、正の数の1を算出します。逆に前回の成績がよければ、負の数の-1を算出します。
ならば、算出した数に2を加算してあげれば、1・2・3となるわけです。
わかりやすく、表にしてみます。

この判定を使って、早速、CHOOSE+SIGN関数を作っていきましょう。

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

インデックスに、SIGN関数をネストしていきます。
名前ボックスの▼をクリックして、挿入します。
SIGN関数のダイアログボックスを表示したら、数値に式を作成していきます。
D4-C4

と入力して、CHOOSE関数に戻りましょう。

数式バーの関数名をクリックすると、ダイアログボックスがそのクリックした関数に変わります。
そして、
インデックスには、SIGN(D4-C4)の後ろに+2を加筆します。
インデックスは、SIGN(D4-C4)+2
値1は、負の場合なので、↓を、値2は、零なので、→を、値3は、正の場合なので、↑を入力しましょう。

これで、完成です。

なお、D4-C4を逆にC4-D4にした場合は、値1が↑・値2が→・値3が↓にすればOKです。