ISOMITTED 関数は、LAMBDA で作った関数の引数が省略されたかどうかを調べる関数です。引数を [r] のように [ ] で囲むと省略できるようになり、ISOMITTED(r) が TRUE なら「省略された」と分かります。
たとえば「税率を省略したら 10%、指定したらその税率」の税込計算を 1 つの関数にできます。この記事では、ISOMITTED の使い方を、実際の Excel で確かめた結果で説明します。LAMBDA・ISOMITTED は Microsoft 365 の関数です。
ISOMITTED 関数の書き方
=LAMBDA(引数, [省略できる引数], …ISOMITTED(省略できる引数)…)
| 書き方 | 意味 |
|---|---|
| [省略できる引数] | [ ] で囲んだ引数は、使うときに省略できる |
| ISOMITTED(引数) | 省略されたら TRUE、指定されたら FALSE |
この記事の式:=LAMBDA(p,[r],ROUNDDOWN(p*(1+IF(ISOMITTED(r),0.1,r)),0))(p=価格、r=税率。r を省略したら 10%、円未満は切り捨て)。LAMBDA の基本は LAMBDA関数の使い方で説明しています。
1. 税率を省略して税込金額を出す
LAMBDA の後ろの ( ) に価格だけを入れます。税率 r が省略されたので、ISOMITTED(r) が TRUE になり、10% で計算します。
=LAMBDA(p,[r],ROUNDDOWN(p*(1+IF(ISOMITTED(r),0.1,r)),0))(A2)

1,000 円は 1,100、980 円は 1,078 でした。
2. 税率を指定して税込金額を出す
2 つ目に 0.08 を入れると、ISOMITTED(r) は FALSE になり、8% で計算します。
=LAMBDA(p,[r],ROUNDDOWN(p*(1+IF(ISOMITTED(r),0.1,r)),0))(A2,0.08)

1,000 円は 1,080、2,500 円は 2,700 でした。
3. 名前を付けて自分の関数にする
[数式]タブ→[名前の定義]で、名前を「TAXIN」、参照範囲に上の LAMBDA の式(後ろの ( ) なし)を登録すると、=TAXIN(A2) や =TAXIN(A2,0.08) のように使えます。練習ファイルには TAXIN を登録してあります。
=TAXIN(A2)

結果は 1,100・2,750・1,078 で、1 の結果と同じでした。
【実機で検証】ISOMITTED でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| TAXIN(1000,0.08) | =TAXIN(1000,0.08) | 1,080 |
| ISOMITTED を使わずに r を省略(p*(1+r)) | =LAMBDA(p,[r],p*(1+r))(1000) | 1,000 |
| 引数が多すぎる TAXIN(1000,0.1,5) | =TAXIN(1000,0.1,5) | #VALUE! |
| 必須の p まで省略 TAXIN() | =TAXIN() | #VALUE! |
| [ ] なしの引数を省略 | =LAMBDA(p,r,p*(1+r))(1000) | #VALUE! |
TAXIN(1000,0.08) は 1,080 でした。
ISOMITTED を使わずに r を省略すると、1,000 になりました。省略した引数は 0 のように扱われるので、10% にしたいときは ISOMITTED で「省略されたとき」の値を決めておきます。
引数が多すぎると #VALUE! になりました。p まで省略した TAXIN() は #VALUE!、[ ] で囲んでいない引数を省略すると #VALUE! です。
よくある質問
[ ] の付け方は?
LAMBDA の引数の名前を [ ] で囲みます。省略できる引数は、ふつうの引数の後ろにまとめて書きます。
名前の定義のやり方は?
[数式]タブ→[名前の定義]で名前と参照範囲を入れます。名前の定義の使い方も参考にしてください。
ほかの自作関数の例は?
MAP・REDUCE・SCANなど、LAMBDA と組み合わせる関数があります。

コメント