「StiLL」 デザイン情報291 コマンド -- 関数で行うデータの抽出やグループ化
                             
  【テーマ】
データのフィルタやグループ化にはそれぞれのStiLLボタンが用意されていますが、今回はセルに関数をセットして同様の事を行うほか、即時反映する方法をご紹介します。


※ Microsoft365、Excel2021のみ
    【方法】
(BtSetValue)」ボタン、
UNIQUE関数・FILTER関数・他関数を使って作成します。
  【参考】
スピル範囲の参照には、先頭セルの後ろに「#」を付けると、範囲全体を参照することができます。
 
           
                             
■ 今回の内容   
データを抽出・加工するには、StiLLボタンを実行すればできますが、
元データが変わった時や条件となる値を変えた時に、その結果も即時反映して欲しいことはありませんか。
今回は、元データの項目から重複を削除した(ユニークな)データの抽出と、指定した条件でのフィルタを例に、
関数とStiLLを使った、即時反映させる方法をご紹介します。
【イメージ】
■ 考え方・条件
データのグループ化やフィルタリングには、通常プログラムの実行が必要ですが、
関数の結果が自動的に広がる「スピル」機能により、同様な結果を表示する事が可能になりました。
今回は特定の関数の作成と、StiLLで設置する方法について解説します。
※本記事で使用する「UNIQUE・FILTER」関数は、Microsoft365、Excel2021で追加された関数で、
それ以前のバージョンのExcelでは利用できません。
■ 作成手順1:重複データの削除(一意の値の一覧を作成)
セル「E1」に、A列の項目から重複を削除し、一意の値のみ表示する関数を作成します。
E1数式:=UNIQUE(A:A)
(範囲A:Aの一意の値の一覧を返す)
数式を確定すると、結果が自動的に広がります。
■ 作成手順2:フィルタ条件欄・フィルタ関数の作成
セル「G2」に、フィルタの条件値を指定する欄を、セル「G5」にフィルタを行う関数を入力します。
セルG5数式:=FILTER(A:C,A:A=G2,"")
(範囲A:C列より、A列がG2セルと同じレコードを返し、ない場合は空欄を返す)
数式を確定すると、結果が自動的に広がります。また、G2セル内容を変更すると、即時結果が反映します。
■ 作成手順3:StiLLボタンによる関数の挿入
上記の関数は、予め入力しても有効ですが、StiLLボタンでセットする場合は、以下のように指定します。
手順1:関数をセットするボタン「セル値セット(BtSetValue)」ボタンの作成
「StiLL」>「セルリンクボタン」>「メニューバー」>「書式」にある「BtSetValue」ボタンを選択し、貼り付けます。
手順2:「セル値セット(BtSetValue)」ボタンの設定
作成した「セル値セット(BtSetValue)」ボタンの以下項目に、下記値を設定します。
!ポイント
関数の前に「^」ハット(キャレット)記号を入れると、スピル機能が有効になります
注意
「==^」のように、スピル機能と値化を同時に指定することはできません
■ スピル機能の特徴と注意点
スピル機能が有効になる関数は、動的に配列が変化し、結果がすぐ反映するので便利ですが、
システムに取り入れるには、以下の点にご注意ください。
1:範囲内のセルは直接編集できない
2:範囲内のセルは単体で削除できない
3:範囲内に別の値があるとエラーになる
4:結果に項目や範囲名はつかず、2次利用しにくい
5:前述に記載したバージョンのExcelでのみ利用可能
上記に該当する場合は、StiLLを使って明示的なデータを作成することをおすすめします。
■ ご参考までに
上記注意点で、範囲名はつかないとしましたが、関数を挿入したセルの参照の後に「#」とつけると、
スピルされた範囲全体を参照する事が可能です。
例1:=ROWS(E1#)
上記例でE列のリストの行数を表示します。
例2:セルG2の「データの入力規則」で「入力値の種類」を「リスト」、「元の値」を「=E1#」と指定すると、
プルダウンリストでE列の内容が表示されます。
今回使用した関数には、別途オプション項目があります。
スピル機能と併せて、EXCELのヘルプ等をご参考にしてください。
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます