Notion

知らなきゃ損!Notionで使える55個のFormulaを一覧解説!

Notionのformulaってどうやって使うの?
どんな関数があるの?

こんな思いを持っている人向けに、notionのデータベースで使える関数の一覧を作成しました。

ここに掲載している関数を使いこなして、自分に合ったnotionページを作成してみてください。

  • notionのテーブルを利用していきたい人
  • formulaの使い方がわからない人
  • formulaの新しい使い方を発見したい人

Notionはマルチに使える便利アプリ

Notionの活用例

notionのタスク管理シートのスクリーンショット

Notionを使うと以下のようなことができます。

  • タスク管理
  • 読んだ本の管理
  • 料理のレシピを管理
  • 行きたいお見せリストの管理

何に使うかは自分次第で非常に自由度の高いアプリです。

何でもできてしまいます。

上に載せている画像はこのブログを書いている”ともたん”が実際に作成したNotionページです。

データベースにタスクを登録することで自動的に

「今週のタスクのみが抽出され、抽出されたタスクがさらに曜日ごとに振り分けられる」

ようにしています。

1週間単位そして1日単位でやるべきタスク一覧が可視化されるので、抜け漏れがなくなります。

また終了したタスクのチェックボックスにチェックを入れることで、自分の努力が可視化され自分を褒めることができます。

私が作成したタスク管理ページでも以下でご紹介するFormulaを使っています。

Formulaとは?

Formulaはテーブルデータの値を用いて何らかの計算を行いたい時に使います。

エクセルで言えば数式のようなものです。

例えば

  • 締め切り日までの残りの日数を自動計算
  • 商品単価と販売個数から売り上げを自動計算
  • 今日の日付を自動で取得

などを行うことができます。

Formulaを使いこなすことができれば、Notionをフル活用することができます。

Formulaにおいては以下の3つを使うことができます。

  • Functions
  • Operations
  • Constants

Funcionsは関数のことです。

例えば、[1,3,4,3,3]の中から最大値を抽出するといった機能を果たすmax関数などがあります。

Operationsは関数処理をする時に必要な一般的な操作を担います。

たとえば条件分岐をさせたい時に使う「if」などがあります。

最後にConstantsは定数のことです。

定数の代表例としては円周率が挙げられます。

Functions(関数)

それでは早速、notionで使える関数について解説していきます。

concat

文字列を結合する関数です。

例えばconcatを使って「a」と「b」と「c」を結合すると以下になります。

concat("a","b","c") == "abc"

join

指定文字を間に挟みながら文字列を結合する関数です。

例えばjoinを使って間に「-」を挟みながら「a」と「b」と「c」を結合すると以下になります。

join("-","a","b","c") == "a-b-c"

slice

文字列の一部を切り取る関数です。

slice(切り取られる文字列, 切り取り開始位置, 切り取り終了位置)

もしくは

slice(切り取られる文字列, 切り取り開始位置)

のように使います。

切り取り終了位置を省略した場合、切り取り開始位置から最後の文字までを切り取ります。

sliceを使うときには以下の点に注意が必要です。

  • 最初の文字は0番目として数える
  • 切り取り終了位置の一個前の文字までが切り取られる

例えば「Hello world」の1番目の文字から4番目の文字までを切り取る場合は以下です。

slice("Hello world", 1, 5) == "ello"

”Hello world”であれば”H”が0番目、”e”が1番目というように数えられます。

3番目以降の文字を切り取る場合は以下です。

slice("notion", 3) == "ion"

length

文字列の長さ(文字数)を取得する関数です。

例えば”Hello world”にlength関数を使うと以下のようになります。

length("Hello world") == 11

“Hello”と”world”の間のスペースもカウントされるので11になります。

format

数値を文字列に変換する関数です。

Notionには数値型文字列型があります。

数値型は足し算や引き算などの演算が可能な型になります。

一方で文字列型の数値は引き算などの演算は基本的に不可能です。

ただし文字列型の数値でも足し算だけはできます。

一見同じ数字でも足し算の結果は数値型と文字列型で異なりますのでご注意ください。

数値型の足し算は以下になります。

4 + 4 = 8

次に文字列型の足し算は以下になります。

"4" + "4" == "44"

文字列型の足し算では”4”と”4″という文字を結合した結果になります。

ここでのポイントは以下です。

異なる型同士の足し算はできない

4 + "ヶ月"

上記の例のように数値型と文字列型の足し算はできません。

もし数値と文字列を結合したい時は数値を文字列に変換してから足し算しましょう。

format(4) + "ヶ月" == "4ヶ月"

上記のように変換をしてください。

contains

ある文字列が特定の文字列を含んでいるかどうかを判定する関数です。

使い方は

contains(大元の文字列, 含まれているかを確認する文字列)

になります。

例えば以下です。

contains("notion", "ion") == true
contains("notion", "test") == false

結果は真偽値(trueもしくはfalse)が出力されます。

ある文字列が特定の文字列を含んでいる場合は「true」、含んでいない場合は「false」が出力されます。

toNumber

文字列を数値に変える関数です。

また真偽値(trueもしくはfalse)を数値に変換します。

例えば以下になります。

format("31") == 31
format(false) == 0

replace

最初に一致した文字列を置換する関数です。

使い方は

replace(置換対象の文字列, 置換したい文字列, 置換後に挿入したい文字列)

になります。

例えばreplaceを使うと以下の置換ができます。

replace("1-2-3", "-", "?") == "1?2-3"

replace関数を使用する際の注意点は以下です。

最初に一致した文字列のみ置換される

上で挙げた例で言うと”1-2-3″には2つの”-“がありますが、1つ目の”-“のみ置換されています。

もし全ての”-“を置換したい場合は以下のreplaceAll関数を使ってください。

replaceAll

指定した全ての文字列を置換する関数です。

replace関数と同じで使い方は

replaceAll(置換対象の文字列, 置換したい文字列, 置換後に挿入したい文字列)

になります。

例えばreplaceAll関数を使うと以下に置換ができます。

replaceAll("1-2-3", "-", "?") == "1?2?3"

empty

空の文字列かどうかを真偽値(tureもしくはfalse)で出力する関数です。

例えばemptyを使うと以下になります。

empty("") == true

abs

数値を絶対値に変換する関数です。

例えば-4をabs関数に渡すと4という数値が返ってきます。

これを数式で表すと以下になります。

abs(-4) == 4

cbrt

与えられた数値の立方根を出力する関数です。

例えばcbrtを使うと以下になります。

cbrt(8) == 2

ceil

与えられた数字よりも大きい整数のうち最小のものを出力する関数です。

例えばceil関数に3.2を代入すると以下の結果が得られます。

ceil(3.2) == 4

floor

与えられた数値を切り捨てて整数を出力する関数です。

例えばfloor関数を使うと以下になります。

floor(2.3) == 2

max

与えられた数値の中で最大値を出力する関数です。

例えばmax関数を使うと以下になります。

max(5, 2, 9, 3) == 9

max関数に与える数値は何個でもオッケーです。

min

与えられた数値の中で最小値を出力する関数です。

例えばmin関数を使うと以下になります。

min(4, 1, 5, 3) == 1

min関数に与える数値は何個でもオッケーです。

round

四捨五入をする関数です。

例えば4.2という数値をround関数に渡すと4という数値が返ってきます。

これを数式で表すと以下になります。

round(4.2) == 4

sign

与える数値の正負によって特定の数値を出力する関数です。

  • 代入する値が0より大きい数字なら1
  • 代入する値が0より小さい数字なら-1
  • 代入する値が0なら0

例えばsign関数を使うと以下のような結果になります。

sign(3) == 1
sign(-5) == -1
sign(0) == 0

sqrt

与えられた数値の平方根を出力する関数です。

例えばsqrtを使うと以下になります。

sqrt(144) == 12

now

今日の日付を取得する関数です。

例えばnow関数を使うと以下のような結果になります。

now() == May 2, 2021 11:55 AM

timestamp

1970年1月1日を基準としてミリ秒で今の時間を表す関数です。

例えばtimestampを使うと以下のようになります。

timestamp(now()) == 1612593154718

fromTimestamp

1970年1月1日を基準とするミリ秒を今の日付に変換する関数です。

例えばfromTimestampを使うと以下のようになります。

fromTimestamp(1621220220000) == Mon May 17 2021

dateAdd

指定された日付に、指定された分の時間を足し算する関数です。

使い方は

dateAdd(元となる日付, 足し込みたい時間の量, 単位)

になります。

例えば2021年5月2日(今日)の1年後の日付を取得するときには以下のようになります。

dateAdd(now(), 1, "years") == May 2, 2022 11:55 AM

単位の部分には”years”以外にも様々な単位を指定することができます。

単位の一覧は以下になります。

years年単位
quarters四半期単位
months月単位
weeks週単位
days日単位
hours時間単位
minutes分単位
seconds秒単位
millisecondsミリ秒単位

dateSubstract

指定された日付に、指定された分の時間を引き算する関数です。

使い方は

dateAdd(元となる日付, 引き算したい時間の量, 単位)

になります。

例えば2021年5月2日(今日)の1年前の日付を取得するときには以下のようになります。

dateSubstract(now(), 1, "years") == May 2, 2020 11:55 AM

単位の部分には”years”以外にも様々な単位を指定することができます。

単位の一覧は以下になります。

years年単位
quarters四半期単位
months月単位
weeks週単位
days日単位
hours時間単位
minutes分単位
seconds秒単位
millisecondsミリ秒単位

dateBetween

日付と日付間の差分を計算する関数です。

dateBetween(引かれる日付, 引く日付, 結果の表示形式)のように書きます。

例えばある日まで今日から何日余裕があるのかを確認する時には以下のように書きます。

dateBetween(prop("date"), now(), "days")

“days”の部分を”weeks”, “months”などに変えることで関数処理をした結果の表示形式を変えることができます。

表示形式の一覧は以下です。

years年数単位で表示
months月単位で表示
quarters四半期単位で表示
weeks週単位で表示
days日数単位で表示
hours時間単位で表示
miniutes分単位で表示
seconds秒単位で表示
millisecondsミリ秒単位で表示

dateBetween(引かれる日付, 引く日付, 結果の表示形式)の結果の表示形式の部分を自分の目的に合わせて上の表のどれかに指定してください。

start

notionではある日付からある日付までを選択することができます。

これによってタスクを行う期間などを記録することができます。

start関数を使うとある期間のスタート日時を取得することができます。

例えば「タスク消化期間」という列にMay 3, 2021からMay 15, 2021という期間が選択されているときにstart関数を使うと以下のようになります。

start(prop("タスク消化期間")) == May 3, 2021

※prop(“タスク消化期間”)で「タスク消化期間」という列の値を取得しています。

end

end関数を使うとある期間の終了日時を取得することができます。

例えば「タスク消化期間」という列にMay 3, 2021からMay 15, 2021という期間が選択されているときにend関数を使うと以下のようになります。

start(prop("タスク消化期間")) == May 15, 2021

※prop(“タスク消化期間”)で「タスク消化期間」という列の値を取得しています。

formatDate

日付の表示形式を指定する関数です。

例えばformatDate関数を使うと以下のようになります。

formatDate(now(), "MMMM D YYYY, HH:mm") == March 30 2010, 12:00
formatDate(now(), "YYYY/MM/DD, HH:mm") == 2010/03/30, 12:00
formatDate(now(), "MM/DD/YYYY, HH:mm") == 03/30/2010, 12:00
formatDate(now(), "HH:mm A") == 12:00 PM
formatDate(now(), "M/D/YY") == 3/30/10

minute

minute関数を使うと日時から分情報を抽出することができます。

例えば今、何分かを抽出すると以下のようになります。

minute(now()) == 30

hour

hour関数を使うと日時から時間情報を抽出することができます。

例えば今、何時かを抽出すると以下のようになります。

hour(now()) == 13

day

day関数を使うと日時から曜日情報を抽出することができます。

なおday関数の出力は数値になります。

曜日と数値の対応表は以下になります。

0日曜日
1月曜日
2火曜日
3水曜日
4木曜日
5金曜日
6土曜日

例えば今日、何曜日かを抽出すると以下のようになります。

day(now()) == 3
3なので今日は水曜日ということになります。

date

date関数を使うと日時から何日かという情報を抽出することができます。

1から31日までのいずれかの数値が出力されます。

例えば今日が何日かを抽出すると以下のようになります。

date(now()) == 17

month

month関数を使うと日時から何月かという情報を抽出することができます。

例えば今月が何月かを抽出すると以下のようになります。

month(now()) == 5

year

year関数を使うと日時から何年かという情報を抽出することができます。

例えば今年が何年かを抽出すると以下のようになります。

year(now()) == 2021

Operations

続いて関数を使う時に利用する便利な処理について解説します。

if

条件分岐をするための処理を書き込むための機能です。

使い方は

if(条件, 条件が成立する時, 条件が成立しない時)

になります。

例えば「a = -3」としてif文を使うと以下のようになります。

if(a > 0, "yes", "no") == "no"

条件部分は「a > 0」ですが、「a = -3」の場合は条件が成り立ちません。

そのため条件が成り立たなかった場合に出力される”no”が出力されます。

add

addでは足し算処理をすることができます。

例えばaddを使うと以下のようになります。

add(1, 5) == 6

これはaddを使って「1+5」の計算を行った例です。

ちなみにaddの代わりに「+」を使うのでも構いません。

substract

substractでは引き算処理をすることができます。

例えばsubstractを使うと以下のようになります。

substract(6, 2) == 4

これはsubstractを使って「6 – 2」の計算を行った例です。

ちなみにsubstractの代わりに「-」を使うのでも構いません。

multiply

multiplyでは掛け算処理をすることができます。

例えばmultiplyを使うと以下のようになります。

multiply(2, 11) == 22

これはmultiplyを使って「2×11」の計算を行った例です。

ちなみにmultiplyの代わりに「*」を使うのでも構いません。

divide

divideでは割り算処理をすることができます。

例えばdivideを使うと以下のようになります。

divide(15, 3) == 5

これはdivideを使って「15÷3」の計算を行った例です。

ちなみにdivideの代わりに「/」を使うのでも構いません。

pow

powではべき乗処理をすることができます。

例えばpowを使うと以下のようになります。

pow(3, 3) == 27

これはpowを使って「3の3乗」の計算を行った例です。

ちなみにpowの代わりに「^」を使うのでも構いません。

mod

modでは余り計算を行うことができます。

例えばmodを使うと以下のようになります。

mod(3, 2) == 1

これはmodを使って「3を2で割ったときの余り」の算出を行った例です。

ちなみにmodの代わりに「%」を使うのでも構いません。

unaryMinus

unaryMinusを使えば、数値の符号を判定することができます。

例えばunaryMinusを使うと以下のようになります。

unaryMinus(33) == -33
unaryMinus(-33) == 33

unaryPlus

unaryPlusを使えば、与えられた引数を数値に変換することができます。

例えばunaryPlusを使うと以下のようになります。

unaryPlus(true) == 1
unaryPlus(false) == 0
unaryPlus("33") == 33

not

notを使うとその後ろにくる真偽値を否定することができます。

例えばnotを使うと以下のようになります。

not true == false
not false == true

and

andを使うと「〇〇かつ〇〇」という論理を組み立てることができます。

例えばandを使うと以下のようになります。

true and false == false
true and true == true
false and false == false

or

orを使うと「〇〇または〇〇」という論理を組み立てることができます。

例えばorを使うと以下のようになります。

true or true == true
false or true == true
false or false == false

equal

equalを使うと左辺と右辺が等しいかをチェックすることができます。

例えばequalを使うと以下のようになります。

equal(2*10, 20) == true

これはequalを使って「2×10の計算結果と20が等しいかどうかの判定」を行った例です。

ちなみにequalの代わりに「==」を使うのでも構いません。

unequal

unequalを使うと左辺と右辺が等しくないかをチェックすることができます。

例えばunequalを使うと以下のようになります。

unequal(2*10, 30) == true

これはunequalを使って「2×10の計算結果と30が等しくないかどうかの判定」を行った例です。

ちなみにunequalの代わりに「!=」を使うのでも構いません。

larger

largerを使うと左辺が右辺よりも大きいかどうかをチェックすることができます。

例えばlargerを使うと以下のようになります。

larger(10, 3) == true

これはlargerを使って「10が3よりも大きいかどうかの判定」を行った例です。

ちなみにlargerの代わりに「>」を使うのでも構いません。

largerEq

largerEqを使うと左辺が右辺と等しいもしくは大きいかどうかをチェックすることができます。

例えばlargerEqを使うと以下のようになります。

largerEq(10, 3) == true
largerEq(3, 3) ==true

ちなみにlargerEqの代わりに「>=」を使うのでも構いません。

smaller

smallerを使うと左辺が右辺よりも小さいかどうかをチェックすることができます。

例えばsmallerを使うと以下のようになります。

smaller(10, 3) == false

これはsmallerを使って「10が3よりも小さいかどうかの判定」を行った例です。

ちなみにsmallerの代わりに「<」を使うのでも構いません。

smallerEq

smallerEqを使うと左辺が右辺と等しいもしくは小さいかどうかをチェックすることができます。

例えばsmallerEqを使うと以下のようになります。

smallerEq(10, 3) == false
smallerEq(3, 3) ==true

ちなみにsmallerEqの代わりに「<=」を使うのでも構いません。

Constants(定数)

最後にformulaで使える定数についてご紹介します。

e

ネイピア数のことです。

e == 2.718281828459045

タスク管理など一般的な用途でnotionを使う場合には、使うことはないです。

「そんなのがあるのか」程度の理解でオッケーです!

pi

円周率のことです。

pi == 3.14159265359

角度データを扱う時に使う場面があるかもしれません。

Formulaを使いこなしてNotionを有効活用しよう

Notionのデータベースを操作する時に利用する可能性のある「Formula」について解説しました。

Formulaを使いこなすことができれば、タスク管理やプロジェクト管理などを効率的に行うことができます。

ご自身の利用目的に合わせて便利なNotionページを作成してみてください!