スプレットシートの「名前付き関数」ってどういう機能なんでしょう?
使いこなせたら仕事の効率アップにつながるんでしょうか??
はい。
「名前付き関数」は面白いですよ。
今回は
① 名前付き関数について
② 名前付き関数の作成例
③ 登録した名前付き関数を他のスプレッドシートで使う方法
について話していきましょう。
名前付き関数について
「名前付き関数」とは?
スプレッドシートの「名前付き関数」とは、特定の計算式や値に名前を付け、スプレッドシート内で簡単に再利用できるようにする機能です。
ChatGPT4
この機能を使用することで、複雑な計算式を繰り返し入力する必要がなくなり、スプレッドシートの可読性やメンテナンス性が向上します。
数式って長くなりがちじゃないですか?
それを「名前付き関数」に登録しておけば、簡単に使いまわせるってことです。
=SUBSTITUTE(CONCATENATE(ARRAYFORMULA(IFERROR("; "&
REGEXEXTRACT(SPLIT(C3,CHAR(10)),
"[a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]{2,}"),""))),"; ","",1)
例えばこんな数式。
使い回すとき「数式のどこをどう変えればいいんだっけ?」と、わかりづらいんですよね。
例えば、この数式を「名前付き関数」に登録してみると・・・
=REGEMAIL(C4,CHAR(10),"; ")
使っている関数名や、固定の引数を「名前付き関数」の構造内に格納するようなイメージでしょうか。
結果、上のように「引数」のみの非常にシンプルな数式にすることができます。
「名前付き関数」の登録方法
今回は、商品が「持ち帰りか」どうかで消費税を変える「TAX」関数なるものを作りながら登録方法を説明していきたいと思います。
「名前付き関数」設定メニュー
上部メニュー > 「データ」 > 「名前付き関数」 と進みます。
画面の右に「名前付き関数」のメニューが表示されます。
メニューの下にある「新しい関数を追加」をクリックします。
「新しい名前付き関数」のメニューが開きました。
関数名
「関数名」には「TAX」を入力します。
「関数の説明」には「数値に税金を加算して出力します。」と入力してください。
数式の定義
「引数のプレースホルダ」は一旦スキップして・・・
「数式の定義」には「=IF(持ち帰り,数値*1.08,数値*1.1)」と入れます。
=IF( 計算式 , 計算式の結果がTRUEの場合 , 計算式の結果がFALSEの場合 )
ちなみに、IF関数の構造はこんな感じです。
ここに「数式の定義」の内容を当てはめてみます。
=IF( 持ち帰り , 数値*1.08 , 数値*1.1 )
「持ち帰り」の結果が「TRUE」ならば「数値の1.08倍」の値を
「FALSE」ならば「数値の1.1倍」の値を出力、となります。
じゃあこの「持ち帰り」とか「数値」とかってなんなんだ?
というのを次で説明していきますね。
引数のプレースホルダ
この「引数のプレースホルダ」とは何かというと、数式・関数に外側から値を渡す「引数」というものの設定になります。
出来上がったら理解できると思いますので、とりあえず関数作りを進めてみましょう。
ここでは一旦以下の値を入力していってください。
「引数のプレースホルダ」には、先ほどの数式の中にあった「持ち帰り」を入力します。
エンターキーを押すと「持ち帰り」が登録され、「数式の定義」の「持ち帰り」にも色がつきました。
続いて「数値」と入力してエンターキーを押します。
「次へ」を押してください。
補足説明
次のページに進むと、「補足情報」の設定画面が表示されます。
ここは登録した「引数の説明」と「引数の例」を入力するページになります。
「引数の説明:持ち帰り」には、
「持ち帰り商品の場合は「TRUE」をそれ以外の場合は「FALSE」を指定します。」と入力します。
「引数の例:持ち帰り」には
「TRUE」と入力します。
これらについてもこの後で説明しますので、
一旦進めていきますね。
「引数の説明:数値」には、
「商品の金額を入力します。」と。
「引数の例:数値」には、
適当な数、「100」とでも入れておきましょう。
これで「作成」を押します。
これで「名前付き関数」が作成できました。
それでは実際に動かしてみましょう。
名前付き関数を動かしてみる
適当なセルに先ほど作成した関数名「=TAX…」と入力してみてください。
登録がちゃんと出来ていれば「名前付き関数」として関数がアシストされます。
「=TAX(」と入力すると、「引数」がアシストされます。
ここに出てくるのが、さきほど「引数のプレースホルダ」で登録した「持ち帰り」や「数値」といった引数になります。
これらのことを「引数のプレースホルダ」といっているわけです。
なんだかイメージがつかないタイトルですが、セルに関数を入力したときに出てくる”これ”と分かればなんてことないですね。
「持ち帰り」には「TRUE」を「数値」には「100」と入れてみましょう。
関数メニュー右下の「詳細を展開」を開いてみます。
開いたメニューには、「補足説明」の項で入力した「引数の説明」や「引数の例」が表示されています。
関数の使い方が分からない場合、こういった補足情報で確認することもあると思います。
この説明や例を分かりやすく書ければ、(後日の)自分や自分以外のユーザーにとっても使いやすい「名前付き関数」と言えますね。
自分が作った関数をしばらくぶりに使う際や、自分以外の人が使う際には、これらの「補足情報」が充実しているとわかりやすいし親切ですよね。
「補足説明」自体は省略(スキップ)出来ますが、分かりやすい関数を作る上ではこういった情報ももれなく埋めていくのが”後々のためにも”良いと思います。
実用的な「名前付き関数」の作成例
えー
じゃあ実際に実務で使えるような関数は作れるのか?
ってことで僕が作った関数を紹介していきます。
これらをヒントにして、ご自分の必要な関数を作成する役に立ててもらえたら嬉しいです。
AVLOOKUP
AVLOOKUP
関数は、VLOOKUP関数を列範囲に自動で反映してくれる関数です。
この関数を登録しておけば、ズラーっと行全体にVLOOKUPをコピペする作業ともおさらばです。
また、VLOOKUPの「[並び替え済み]」って、ほとんど「FALSE」しか使わなくないでしょうか?
ここでは「FALSE」固定とし、入力の手間を省略しています。
AVLOOKUP関数の数式
=AVLOOKUP(キーワード列, 検索範囲, 出力列)
//例
=AVLOOKUP(D1:D10,A1:B30,2)
設定・登録方法
REGEMAIL
REGEMAIL
関数はテキスト内からメールアドレスを抽出してくれる関数です。
複数のアドレスがある場合も抽出可能です。
アドレスは1セルにまとまって出力されるので、”つなぎの文字”を指定しておけば、OutlookやGmailにそのまま使用できるように想定して作っています。
※ただ、元のテキストとメールアドレスが「,」や「改行」など、決まったパターンで区切られている必要があります。
REGEMAIL関数の数式
=REGEMAIL(テキスト, 区切り, 接続文字)
//例
=REGEMAIL("アドレス 太郎 taro.ad@taro.comco:鈴木メール suzuki@mail.jpo",":","; ")
//出力結果
taro.ad@taro.comco; suzuki@mail.jpo
設定・登録方法
DMAIN
DOMAIN
関数はURL内からドメインを抽出してくれる関数です。
「www.」の有無も引数にて選択できます。
DOMAIN関数の数式
=DOMAIN(url列, www有無)
//例
=DOMAIN("https://kabu-noma.com/ss/domain/", 0)
//出力結果
kabu-noma.com
設定・登録方法
LIST
LIST
関数は参照範囲をUNIQUE化(重複無し)、空白無しでリストアップします。
昇順で並び替えるか降順で並べるかを指定できる関数です。
LIST関数の数式
=LIST(範囲, 昇順)
//例
=LIST(A1:A, TRUE)
設定・登録方法
RANDATE
RANDATEL
関数はその日の「日付数値データ」と関数が入力されたセルの「行数」、「列数」から擬似的な乱数を出力する関数です。
日付がベースになるため、1日の間は値が変わりません。
翌日は同じセルでも別の乱数が出力されます。
RANDATE関数の数式
=RANDATE()
//例
=RANDATE()
設定・登録方法
登録した名前付き関数を他のスプレッドシートで使う方法
この「名前付き関数」なにが良いって、
一度作っておけば他のスプレッドシートでも呼び出すことができるんですよね。
「名前付き関数」用のスプレッドシートを一つ作っておき、
新しく作ったスプレッドシートにはそこから関数を読み込んでおく、みたいな運用がおすすめです。
作成した名前付き関数を”読み込みたい”スプレッドシートを開きます。
上部メニュー > 「データ」 > 「名前付き関数」 を押し、「名前付き関数」メニューを開きます。
「関数をインポート」をクリックします。
Googleドライブの検索メニューが表示されるので、検索窓から「名前付き関数」のスプレッドシート名を入力します。
該当のスプレッドシートを選択し、「挿入」を押します。
選択したスプレッドシート内で作られた「名前付き関数」が一覧で表示されるので、好きなものにチェックして「インポート」するか、「すべてをインポート」をクリックしてください。
これで作成済みの「名前付き関数」が他のスプレッドシートでも使えるようになります。
まとめ
今回は
① 名前付き関数について
② 名前付き関数の作成例
③ 登録した名前付き関数を他のスプレッドシートで使う方法
について話をしました。
今回は私の出る幕はなかったですね笑
作った「名前付き関数」は、他のスプレッドシートでも使えるっていうのが運用の幅が広がって嬉しいですよね!!
どのスプレッドシートで作ったかわからなくならないように、
「名前付き関数」用のスプレッドシートに集約しておくのも管理する上では結構大切だと思います。
コメント