FC2ブログ

複数ある検索データを取り出す 5 作業列なし関数

作業列を使わない
   関数で求める方法


 条件と一致する行が、何行目か 計算
 求めた行数の小さい方から
 順番に データを取り出す
 これを、一つの関数内で設定する


使用するのは、今までと同じ

  201905280011.png
 Sheet2 は、以下のような状態

  201905311001.png

  Sheet2 の A5 セルに
 =IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1),"",INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))))
 注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
数式欄に入力が終わったら
 [Ctrl]+[Shift]+[Enter]キーを 押す
  ※ 関数内が、配列なので、 「配列数式
 {=IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1),"",INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))))}
 注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です


I F 関数
 「 論理式 」
  COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1)
  注意:ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
 「 真の場合 」
  ""
 「 偽の場合 」
  INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1)))

「 論理式 」

 COUNTIF(Sheet1!$D$3:$D$47,$A$2)<ROW(A1)
 Sheet1 の D列=「性別」の列に、
 選択した性別「男」の数を COUNTIF 関数で求め
 関数を入力したセルの数と比較する
 データが増える=行数が増える
 最初のセルに ROW(A1) なので、データの数と同じになる
 つまり、行数が、データの数より増えた時点で、TRUE ( 真 )

 「 真の場合 」
 
 行数が、データの数を超えたら、空欄=""

 「 偽の場合 」

 INDEX(Sheet1!B$3:B$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1)))

 INDEX 関数

 配列
  Sheet1!B$3:B$47
 行番号
  SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(A1))

配列
求める値は、一番左の列「受験番号」のB列
設定する数式を 右へオートフィルして、別の列のデータを求めるので
列は、固定しない

行番号
Small 関数
配列
 IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45))
順位
 ROW(A1)

配列は、D列が、「男」の場合 行番号を求め
順位は、関数を設定したセル上から順番に求める

A5 セルに、入力し、配列数式に決定

 201905311002.png

右へ オートフィルする
 
 201905311003.png

下へも オートフィル
 ※ 予想データ数より すこし多めに オートフィルする

 201905311004.png

結果

 201905311005.png

A2 には、リストを設定してあるので、「女」に変更する

 201905311006.png

 201905311007.png

ここでは、すべてのデータを表示しましたが、
「 氏名 」だけを抽出したい場合
 {=IF(COUNTIF(Sheet1!$D$3:$D$47,$A$2)ROW(B1),"",INDEX(Sheet1!C$3:C$47,SMALL(IF(Sheet1!$D$3:$D$47=Sheet2!$A$2,ROW(Sheet1!$B$1:$B$45)),ROW(B1))))}
 注意 : ネットにアップするために、関数内の「<」を全角にしています、本来は半角です
  コピーして使用する場合は、注意してください


INDEX 関数の「範囲」を 目的の「 氏名 」のセル範囲にするだけで良い

201905311009.png

 201905311008.png


使用している セル ・セル範囲
 1. D3:D47 = 検索対象のセル範囲
 2. ROW(A1) これは、2回とも データを 1から確認する方法
    A1でも B1 でも C1 行数が「 1 」 ならば 構わない
 3. INDEX 関数の範囲 求めるデータの列(セル範囲)
 4. Sheet2!$A$2 は、検索の値
 5. ROW(Sheet1!$B$1:$B$45) データと同じ幅を持つセル範囲
   列は、どの列でも構わない、行が、「 1 」から 必ず、データの量と同じ行数にする

変更するには、
以上のことを 考慮し 数式を変更し
最後に、必ず、配列数式に 設定する
[Ctrl]+[Shift]+[Enter]キーを 押す

. 
スポンサーサイト



複数ある検索データを取り出す 4 ちょっと変わった方法

複数ある検索データを取り出す 
ここに、入れようか迷ったのですが
私が、面白いって、思ってしまい
どうしても忘れないうちに、書いておこうと思い
無理やり、ここへ入れました

ちょっと前に、書いた 新しい関数の TEXTJOIN 関数を使った方法

使用するのは、今までと同じ一覧表
条件も同じ「 男 」のデータ

自分用と思ってください
ややこしいです

Sheet2 は、以下のようにする

 201905280027.png

A5 セルに、以下の数式
=TEXTJOIN(",",1,IF($A$2=Sheet1!$D$3:$D$47,Sheet1!B$3:B$47,""))
[Crtl]+[Shift]+[Enter]キーで、確定
配列数式です
{=TEXTJOIN(",",1,IF($A$2=Sheet1!$D$3:$D$47,Sheet1!B$3:B$47,""))}

201905280028.png

こうなってから、右へオートフィル

 201905280029.png

そのまま、コピーして
少し離れた A7セルで、右クリック
「形式を選択して貼り付け」をクリック

 201905280030.png

[形式を選択して貼り付け]ダイアログ
【 〇 値 】 に、チェックを 入れ
【 □ 行列を入れ替える 】 に、チェックを入れ
[ OK ] クリック

 201905280031.png

データが、「 , 」区切りで、表示される

 201905280032.png

データ]タブ 「区切り位置」をクリックする

 201905280033.png

データの区切り位置 設定ウィザード]ダイアログ
【 〇 区切り記号 】 に、チェックを入れる
[ 次へ ] を クリック

 201905280034.png

データの区切り位置 設定ウィザード- 2/3]ダイアログ
【 □ カンマ 】 に、チェックを入れる
[ 完了 ] を クリック

 201905280035.png

データが、横ですが、表示される

 201905280036.png

A7 セルから、[Ctrl]+[Shift]+[→]で、右端まで選択
[Ctrl]+[Shift]+[↓]で、すべて選択
コピーする
A16 セルに、先ほどと同様
「形式を選択して貼り付け」
【 〇 値 】 に、チェックを 入れ
【 □ 行列を入れ替える 】 に、チェックを入れ
[ OK ] クリック
行列を入れ替えて、値で貼り付ける

 201905280037.png

この後は、5行目から15行を削除する

 201905280038.png

実用には、向かないかもしれませんが
     何かのヒントには、なりそう


 

複数ある検索データを取り出す 3 関数_作業列あり

前の 2回は、
 * オートフィルタ
 * フィルターオプションの詳細設定

でしたので、一度抽出すると それでおしまいでした

そこで、
 抽出条件を変えるだけで
 抽出内容が 変化するように
 関数を使いたいという方がいる
 元のデータは、以前と同じ

  201905280011.png

比較しやすいように
 抽出するのは、「 男 」のデータ

最初に、書いておきますが
     いろいろな方法が あります
その1つの方法で、作業列を使用します


 考え方を 理解していただければ、
  ご自分のケースに 応用できると思います


 1.抽出する Sheet 2 に、下の画像のように入力します
   条件のセル
   抽出する項目行

  201905280021.png
  ※ Sheet 2 A2 には、リストで、「男」・「女」を選択できるようにする
  ※ 仮に、「男」にしておく

 2.Sheet 1 の一覧表の右端に、「作業列」を作成します
   「 男 」 を 探すと、どの行も 同じ「 男 」で しかないので
   一番上にある「 男 」・2番目・・と 区別する目的
   設定する数式は
   「性別」が、Sheet 2 の A2 セルと一致する場合
   Sheet 1 D列で、その行までに、一致するデータがあった個数を表示
   一致しない場合は、空欄
   =IF(D3=Sheet2!$A$2,COUNTIF($D$3:D3,Sheet2!$A$2),"")

  201905280022.png

 J3 セルに、入力した数式について
  =IF(D3=Sheet2!$A$2,COUNTIF($D$3:D3,Sheet2!$A$2),"")
  D3=Sheet2!$A$2 これは、「性別」が、Sheet 2 で、指定した性別ということ
  D3 は、数式をオートフィルする場合に、同じように移動して欲しいのでそのまま
  Sheet2!A2 は、移動したら困るので、絶対参照 ($)設定
  COUNTIF($D$3:D3,Sheet2!$A$2) は、D列に、指定した性別がいくつあるか?
  D列のセル範囲 $D$3:D3 
  始まりは、D3 セル 移動したら困るので 絶対参照
  セル範囲の終わりは、その数式がある行まで 移動して欲しいのでそのまま
  数式を オートフィルする場合、
  セルやセル範囲の変化を 想像して 「 $ 」 を 設定する


作業列に 設定した数式により
抽出したいデータは、
  作業列に、数値がある行ということになる


ここからが、ややこしいのですが
Sheet2 のデータを表示したいセル Sheet2 A5 に 以下の数式を入力する
 ※ 文字で書こうとしたら、記号が良くないのか表示できないので、画像になってしまった
201905280023.png

A5 セルを 右へオートフィルする

  201905280024.png

そのまま データがありそうな位置まで、下へオートフィルする
 ※ 少し長めに設定する

  201905280025.png

結果
 文字列の配置や罫線は ともかく データは、表示される

  201905280026.png

肝心の関数の意味

 =IF(MAX(Sheet1!$J$3:$J$47)<ROW(A1),"",INDEX(Sheet1!B$2:B$47,MATCH(ROW(A1),Sheet1!$J$2:$J$47,0)))
 ※ 「<」を 「<」(全角)に変更したら、アップ出来ました

一番外側は、I F 関数
 条 件
 MAX(Sheet1!$J$3:$J$47)<ROW(A1)
  MAX関数、作業列の最大値=求めるデータの総数
  ROW関数 数式を設定した行の数
  これを比較して、数式を設定した行が、データの数を超えるかどうか
 真の場合
  「データの数」が、「数式を設定した行」より少ない場合、空欄
  ※ データが 無い行は、空欄にする
 偽の場合
  データがある場合
  INDEX(Sheet1!B$2:B$47,MATCH(ROW(A1),Sheet1!$J$2:$J$47,0))
  まず INDEX 関数
  範 囲
  元の一覧表(Sheet 1)の表示したい列のセル範囲
  数式を入力したのが、「受験番号」の列なので、Sheet 1 では、 B列
  数式を オートフィルするので  列は、自由 行は、固定
  
  MATCH 関数で、
  最初のセルは、1 次のセルは 2 を 探したいので
  ROW 関数で、探す数値を決定
  探す範囲は、「作業列」
  照合の型
  完全一致の 「 0 」 を 入力

数式を 右へ オートフィルすると
 INDEX 関数の範囲が、1つづつ右へずれる
 下へオートフィルすると
 ROW 関数が、1つづつ増えて、順に探す行が移動する
 データがなくなると、I F 関数によって、空欄になる

応用する方法

この例に使用した一覧表では、わかりやすく
条件を 1つにしましたが
「 作業列 」 に、入力する数式を変更する
例えば、**で、〇〇の場合などは
AND 関数を使用する
**または、〇〇の場合
OR 関数をしようするなど
ポイントは、
「 作業列 」に 表示したいデータの行に順番に番号を表示
必要ない行は、空欄にする

この例では、すべての列を 表示しましたが
「 名 前 」 だけを、表示したい場合は
Sheet 1 の C列のセル範囲だけを 取り出せばよい
INDEX 関数の「 範囲 」 を Sheet1!C$2:C$47 にするだけ
=IF(MAX(Sheet1!$J$3:$J$47)<ROW(B1),"",INDEX(Sheet1!C$2:C$47,MATCH(ROW(B1),Sheet1!$J$2:$J$47,0)))
※ 「<」(全角)になっています、コピーして使用する場合は、「<」(半角)に変更してください

. 

複数ある検索データを取り出す 2

今回は、
フィルタ オプションの設定(データ抽出)

サンプルは、前回と同じ

  201905280011.png

 抽出する場所を、別のシートへ抽出する

 この場合は、抽出する条件の「見出し」をコピー
 条件は、「性別」が、「 男 」 なので、
 見出しは、「性別」を コピーする

 別シートへ 貼り付ける この場合 Sheet2
 そして、そのセルの下のセルへ条件を入力する
 条件は、男

  201905280013.png

  この入力したセルから 
  1列 1行以上離したセルをクリック A4 セル
  [データ]タブ
  「詳細設定」をクリックする

  201905280014.png

 [フィルタオプションの設定]画面が表示される
 
  201905280015.png

 「抽出先」
 【 〇 指定した範囲 】 に、チェックを入れる


  201905280016.png

 「リスト範囲」欄に、既に「Sheet2!$A$4」とあるが
 削除し、Sheet1 の一覧表を選択する

  201905280017.png
  セル範囲 B2~I47 を選択した場合
  シート名が表示され、セル範囲は、絶対参照($)になる
次の 「検索条件範囲」欄には、
 先ほど作成した A1:A2 を選択する

  201905280018.png

 最後の 「抽出範囲」欄には、
  最初にクリックしたセル A4 を選択する
  ※ この位置が、抽出するデータの左上になる

 201905280019.png

 [OK]を クリックすると
 データが表示される

  201905280020.png

これで、データは抽出できたので
後は、列幅を調整するだけ


次回は、関数を使用して表示する方法

. 

複数ある検索データを取り出す 1

表計算で、質問が多いもの
複数ある検索データを取り出す
どうやるのか?

検索データを表示する場合
初心者の場合
関数では、VLOOKUP関数や INDEX + MATCH 関数が
思いつくでしょう
しかし
これでは、1つデータしか表示できない

複数のデータが、検索に一致する場合
一番簡単な方法は、

 オートフィルタ (データ抽出) 
 フィルタオプションの設定(データ抽出)などの機能

  201905280003.png

このような一覧表の場合
性別が、「男」のデータを取り出すと
データは、複数行になります

この一覧表は、ちゃんとデータ形式になっていますので
すぐに、オートフィルタを設定できます
1.表の中のセルを選択 仮に E6 セル
2.[ホーム]タブ 「自動フィルタ」→「自動フィルタ」 を クリック

  201905280004.png

3.「項目名」のセルに、▼ が 表示される

  201905280005.png

4.「性別」欄の ▼ を クリックし、「 男 」にだけチェックを入れ、[OK]をクリックする

  201905280006.png

5.これだけで、「 男 」のデータを表示できます

  201905280007.png

7.このデータを別シートへ表示したい場合は
  この表をコピーし、貼り付ければ良い

  201905280008.png

次回は、コピーしないで、直接別シートへ抽出する方法

.
 

旧製品「KINGSOFT Office」製品サポート終了のお知らせ

先ほど ちょっと Kingsoft Office の HP へ 行ってみた
お知らせが、いくつかありました

 1.新元号に対応した最新プログラムの提供を開始しました
 2.WPS Office(KINGSOFT Office)をご利用中のお客様へのご案内
 3.旧製品「KINGSOFT Office」製品サポート終了のお知らせ

一番重要なことは、3番目の「サポート終了」のお知らせではないでしょうか?

 先般ご案内のとおり、
 長らくご愛顧いただきました
 旧製品「KINGSOFT Office」の製品サポートが
 2019年6月28日を もって 終了いたします。
 それ以降は、
  操作に関するお問い合わせ、
  シリアル番号認証解除等の技術サポート、
  製品不具合の改修などへの
 ご対応は致しかねますので、予めご了承ください。


 

TEXTJOIN 関数の使い方 ちょっと複雑

TEXTJOIN 関数の便利?な 使い方

このような表があった場合

 201905170001.png

例えば、「経済学部」 の 人の名前だけを
  1つのセルに、抜き出す
  横に一覧表を作成する

 201905170002.png

結論から
 F2 セルに、以下の数式
 {=TEXTJOIN("、",TRUE,IF($C$2:$C$15=E2,$B$2:$B$15,""))}
 下へ、オートフィル

 201905170003.png

 区切り文字が、「、」
 空白の場合は、連結の対象としない・・・ TRUE
 C2:C15 = 学部名が、
 E2 = 経済学部 の場合 
 B2:B15 = スタッフ
 違う場合は、空欄
作成した関数が
 =TEXTJOIN("、",TRUE,IF($C$2:$C$15=E2,$B$2:$B$15,""))

なのですが、

IF 関数の内容が、配列 なので、
数式を 有効にするため
[Ctrl]+[Shift]+[Enter]キーの同時押し


その結果、前後に 【 { 】 ・ 【 } 】 が付き
 {=TEXTJOIN("、",TRUE,IF($C$2:$C$15=E2,$B$2:$B$15,""))}
 配列数式 と なる

これも TEXTJOIN 関数 だから 可能になった
 * 空欄を無視して、結合できる
 * セル範囲で、結合するセルを選択できる

 

新しい関数について CONCAT 関数 TEXTJOIN 関数

※ CONCAT 関数・ TEXTJOIN 関数 が、使えるもの
  Office 365
  Excel Online
  Excel Mobile
  Excel for Android
  Excel 2019

  WPS Office Ver 10.8.2.6709
  LibreOffice

   Microsoft Excel 2013 以前では、使用できない
   Excel 2016 でも 永続版=買取タイプでは、使用できません
   定額料金(サブスクリプション)型の Office
   「Office 365」でないと 使えません

CONCAT 関数

セル内の文字列を結合する場合
今までは、
を 使用するか
CONCATENATE 関数 を使うしかありませんでした
それが、この新しい関数
便利です 下の画像のように使える

 201905160015.png

A1 セルから D1 セルまでの文字列を結合するのに
CONCAT 関数の引数に、A1:D1 と、セル範囲を選択するだけで済む
=CONCAT(A2:D2)
今まででしたら
& を使うと
=A2&B2&C2&D2
CONCATENATE 関数では
=CONCATENATE(A2,B2,C2,D2)
このように、セルを 1つ1つ選択しなければならなかった

 201905160016.png

TEXTJOIN 関数 テキストジョイン関数

こっちの関数は、ただ単に、文字列を結合するのではなく
文字列と文字列の間に、指定した文字列等を入れることが出来る

区切り記号を 挿入しながら 複数の文字列を連結する

指定した文字列等=区切り記号


TEXTJOIN ( 区切り記号, 空の文字列を無視, 文字列1, 文字列2, ..., 文字列252 )

 201905160017.png

よくある 
セルに「2019」・「5」・「16」と入力されている
これを 日付にしたい
こういった場合に、この関数は便利
文字列を結合するだけでなく
間に「/」を入れて、「2019/5/16」にすることが簡単にできる
=TEXTJOIN("/",TRUE,A1:C1)

「区切り文字」=「/」
A1 セルから C1 セルの文字列

 201905160018.png

 201905160019.png

ただ このままでは、文字列なので 」
日付とする場合は、1 を かけてシリアル値に変換する
=TEXTJOIN("/",TRUE,A1:C1)*1

別の使用例

 201905160021.png

区切り文字を 1つではなく
複数順番に、違う文字列を挿入させる

東 京 の後ろに、「都」
新 宿 の後ろに、「区」
歌舞伎の後ろに、「町」
=TEXTJOIN({"都","区","町"},TRUE,A1:D1)

 201905160020.png

 201905160022.png


注意
 この関数を使用したファイルを
 Microsoft Office を 使用している方に
 データとして渡す場合
 どのバージョンを使用しているか? 
 確認してください
 不安な場合は、PDFにするか 
 新関数の部分を コピーし 「値」で 貼り付けする
 Office365 以外の方の場合
 この関数は、使用できません
 ※ Personal は、永続版なので 新しい関数は、使用できません
 
  関数を 文字列 として 認識するので
  「 #NAME? 」 と 表示される
  このようになります

Microsoft の サポートページ

 数式の前に _xlfn. という接頭辞が表示される 
.
要点だけ
 現 象
  数式を計算すると、#NAME? が表示されます
 原 因
  使用している Excel のバージョンで、
  サポートされていない機能(=新関数)が 含まれています
 解決方法
  サポートされていない機能(=新関数)を 削除するか、
  可能な場合は、
  サポートされている機能(=従来の関数)と
  サポートされていない機能(=新関数)を 置き換えます
 注 意
  これらの新しい関数は、
  Office 365 サブスクリプションがある場合に使用できます
 

新しい関数について SWITCH 関数

SWITCH 関数 が、使えるもの
 Office 365
 Excel Online
 Excel Mobile
 Excel for Android
 Excel 2019

 WPS Office
 LibreOffice

 複数の値を検索して
 一致した値に 組み合わせられた結果を返す

(検索値, 値1, 結果1, 値2, 結果2, ..., 値126, 結果126, 既定の結果)
 201905120009.png

例えば
書類の入力欄で、リストから選択する設定がされているセル
選択されたら、それに応じて表示する設定に使える
簡単な例
 性別欄 
 「A」 を 選択すると 「男性」
 「B」 を 選択すると 「女性」
 選択されていない場合
 「選択するような文章」
 =SWITCH(D2,"A","男性","B","女性","必ず入力してください")

 201905120010.png

 これは。簡単にするために、男女の2つからですが
 VLOOKUP 関数の代わりに
 「」の位置へ、検索の左列に相当するもの
 「結果」の位置へ 求めるものを入力すれば
 元となる表が無くても 使える
 なおかつ
 検索に無い場合の表示を
 「既定の結果」へ 設定できる


 「 ID 」の選択を、A~E で、選択させる

 201905120016.png
 
 「 ID 」 を 選択しない場合は、
 「インストラクター」は、決まった人が表示される
 =SWITCH(H3,"A","小井出圭吾","B","斎藤隆文","C","有賀由紀子","D","星野良一","栗原千里")
 この数式では、以下のような感じ

 201905120015.png

 201905120011.png

 今まででしたら
 インストラクターの一覧表を作成して
 =VLOOKUP(H3,$K$3:$L$7,2,0)

 201905120012.png

 2つの違い
 例えば、「 ID 」欄が空欄の場合
 SWITCH 関数では、空欄の場合でも 
 「それ以外の場合」 という設定が あるので、表示される
 
 201905120014.png

 VLOOKUP 関数の場合は、このままでは、エラー(#N/A)になる
 ※ IF 関数を組み合わせ、空欄の場合は、** という設定が必要
 201905120013.png

ここまでは、「検査値」欄は、セルをそのまま指定しましたが
 関数を使った式も、使えます
 例えば、RANK 関数を使用し、
 求められる順位で、決めた文字列を表示させることも可能です

 ちょっと変わった方法で
 成績の300以上を「優」
 200 以上を 「秀」
 100 以上を 「可」
 それ以外を 「不可」
 ※ 合計点を 100で割り、商で判断する
 =SWITCH(QUOTIENT(I3,100),3,"優",2,"秀",1,"可","不可")

 201905120017.png
 ※ SWITCH 関数のために、 急遽作成したので、満点(400)を無視しました

  いろいろな使い方が、出来そうな SWITCH 関数

 Excel 2019 では、使えるという情報がありますが
 私は、Excel 2019 を 持っていないので
 未確認です
 
 WPS Office で、作成したものを
 Excel で、開いた場合 
 新しい関数を、使用できないバージョン(ほとんど)では
  関数を 文字列 として 認識するので
  「 #NAME? 」 と 表示される
  数式バーの表示は
   =_xlfn. から、始まるものに変化します
  
Microsoft の サポートページ
 数式の前に _xlfn. という接頭辞が表示される 

要点だけ
 現 象
  数式を計算すると、#NAME? が表示されます
 原 因
  使用している Excel のバージョンで、
  サポートされていない機能(=新関数)が 含まれています
 解決方法
  サポートされていない機能(=新関数)を 削除するか、
  可能な場合は、
  サポートされている機能(=従来の関数)と
  サポートされていない機能(=新関数)を 置き換えます
 注 意
  これらの新しい関数は、
  Office 365 サブスクリプションがある場合に使用できます
  

新しい関数について IFS 関数

IFS 関数 (イフ・エス関数)

 ※ Microsoft Excel 2013 以前では、使用できない
   Office 2016 でも 永続版=買取タイプでは、使用できません
   定額料金(サブスクリプション)型のOfficeである「Office 365」でないと使えません

   しかし、WPS Office Spreadsheets では、使用できます Ver 10.8.2.6709

新関数 「IFS 」 ( イフ・エス )
複数の条件を順に調べた結果に応じて異なる値を返す

[論理式1] が 真であれば [真の場合1]の値を 返し
  偽であれば [論理式2] を 調べます
以後は
[論理式2] が 真であれば [真の場合2]の値を 返し
  偽であれば [論理式3] を 調べる......
というように
複数の条件を 順に調べた結果に 応じて、異なる値を返します

例えば、下のような成績表があり
合計点により、ランク分けを行う場合に使える

 ※ ランク条件
  A : 260以上 
  B : 240以上
  C : 210以上
  D : 180以上
  E : それ以外


  201905120001.png

 「ランク」を表示する J3 セルをクリック
 [関数の挿入]ダイアログ IFS (イフエス)を表示
 「論理式」欄で、「合計」が入力されているセル I3 セルを 選択
 ランク最初の「A」の条件 260以上 「 >=260 」を 追加する
 ※ I3>=260

 201905120002.png
 ※ 論理式1 には、結果が、TRUE または、FALSE になる値 もしくは、数式を指定します

 次は、条件が、正しい場合の結果 「A」を入力する

  201905120003.png
  ※ 真の場合 には、論理式の結果が TRUE で あった場合に 返される値を 指定する

 あとは、条件を 順番に入力し、結果を入力する

 201905120004.png

 ランク D の条件 180以上まで、設定しました
 最後の「それ以外」ですが、
 この部分だけ、注意してください
 それ以外の位置の「論理式」欄には、「TRUE」と 入力します
 「真の場合」欄には、結果この場合は「E」と入力する


   =IFS(I3>=260,"A",I3>=240,"B",I3>=210,"C",I3>=180,"D",TRUE,"E")

 201905120005.png

 あとは、下へオートフィルするだけです

 201905120006.png

これを Microsoft Excel ファイル (*.xlsx) 形式で、保存
Excel 2016 Personal で、開くと

  201905120007.png

 Excel 2016 ですが、Personal は、永続版なので
 新しい関数は、使用できません
 そこで、
  関数を 文字列 として 認識するので
  #NAME? 」 と 表示される
  数式バーの表示は
   =_xlfn.IFS(I3>=260,"A",I3>=240,"B",I3>=210,"C",I3>=180,"D",TRUE,"E")
  このようになります

Microsoft の サポートページ

 数式の前に _xlfn. という接頭辞が表示される 
.
要点だけ
 現 象
  数式を計算すると、#NAME が表示されます
 原 因
  使用しているExcel のバージョンで、
  サポートされていない機能が含まれています
 解決方法
  サポートされていない機能を 削除するか、
  可能な場合は、
  サポートされている機能
  サポートされていない機能を 置き換えます
 注 意
  これらの関数は、
  Office 365 サブスクリプションがある場合に使用できます