数式カラムは、monday.com でのデータ操作の最も人気のある方法のひとつです。シンプルな数学的計算から複雑な数式まで、数式カラムは、利用可能な関数のライブラリを活用することで、複雑な問題を簡素化することができます。
この記事を読む前に、以下のボードで、数式カラムの最も一般的な使用事例をご覧ください。
「数式」カラムに記載されている数式をコピーして、ご自分のボードに直接貼り付けてお使いください。
では、集めた使用事例の一部をさらに掘り下げてみよう。以下で、数式カラムの一般的な使用方法をご紹介します。⬇️
日付から日数を足したり引いたりする
こちらの例では、「開始日」カラムの各日付に15日足します。
ADD_DAYS({Start
Date}、15)
逆に15日引きたい場合は、ADD_DAYS()の代わりに、SUBTRACT_DAYS()を入れます。
SUBTRACT_DAYS({Start
Date}、15)
上記の数式はどちらも書式設定されていない結果を表示するため、少し不格好に見えるかもしれません。 そのため、以下の数式を使うことをお勧めします。結果はフォーマットされ、ボード上でより明瞭に見えるはずです。
FORMAT_DATE(ADD_DAYS({Start Date}、15))
年を削除してシンプルに月と日のみを表示したい場合は、LEFT()関数を使用して数式をさらにカスタマイズできます。以下の数式では、LEFT() 関数は FORMAT_DATE() 関数の出力を受け取り、左から 6 文字だけを出力します。
LEFT(FORMAT_DATE(ADD_DAYS({Start
Date}、15))、6)
数式の6を変更すると、数式が出力する文字数が変わります。この数式の結果は、「左」カラムで見ることができます。
日付と今日までの日数を計算する
非常に便利で動的な関数のひとつに TODAY() があります。DAYS() 関数と一緒に使うと、期日までの(または期日を過ぎた)日数を計算することができます。TODAY() を使用する際には、鍵括弧内括弧内は何も入れる必要はありません。
また、DAYS() 関数の出力を ROUND() 関数内にカプセル化しました。この場合は、出力を小数点以下 0 桁で四捨五入することを示しています。
ROUND(DAYS({Due Date},TODAY()),0)
2つの日付間の営業日数を決定する
ボードを、従業員の休暇申請の管理に使用している場合、数式を使って従業員がクリアしなければならない勤務日数を計算することができます。次の関数 WORKDAYS() では、2 つの日付の間の 勤務日数が分かります。勤務日数は、お客様のアカウント設定により、月曜日から金曜日まで、または日曜日から木曜日までと定義されます。このアカウント設定に関する詳細は、こちらの記事をご覧ください。
WORKDAYS({To},{From})
時間追跡カラムを使用した請求可能な合計金額の計算
数式カラムと時間追跡カラムを併用する場合、秒単位、分単位、時間単位のいずれかを選択できます。以下の数式では、「請求可能」カラムの時間単位を使用しています。また、ROUND() 関数を再度使用して小数以下を整理しています。この数式の「2」は小数点以下2桁を意味します。
ROUND(MULTIPLY({Billable#Hours},{Hourly
Rate}),2)
休憩を除く合計勤務時間
この例では、外注業者の勤務時間を計算します。これには無給の休憩時間は含まれません。4つの時間単位カラムを使って、これを計算する数式を作成することができます。
IF(HOURS_DIFF({Break End}, {Break Start}) > "0", HOURS_DIFF(HOURS_DIFF({End}, {Start}), HOURS_DIFF({Break End}, {Break Start})), HOURS_DIFF({End}, {Start}))
この数式では、休憩時間が0より大きい場合、合計勤務時間から休憩時間を差し引いた時間を計算します。休憩時間が0以上でない場合は、合計勤務時間を計算します。
関数について説明しましょう。
2つの値の間の変化を計算する
このボードには、従業員4人の1カ月あたりの総売上高が表示されています。1月と2月の成績の変化をパーセンテージで計算するには、以下の数式を使用します。
MULTIPLY(DIVIDE(MINUS({February Sales},{January Sales}),{January Sales}),100)
数式は以下のようにも書けます。
((({February Sales}-{January Sales})/{January Sales})*100)
2つの条件に基づいて値を出力する
次に各従業員のボーナスを計算します。従業員は 「合計売上」が$350,000である場合、および「案件」カラムの案件数が12以上の場合にのみボーナスを受け取ることができます。
IF(AND({Total Sales}>350000,{Deals}>12),250,0)
AND() 関数は、2つの条件が満たされているかどうかをチェックします。その結果に基づいて、IF() ステートメントはどの値を返すべきかを数式カラムに指示します。
ステータスラベルを使用してコミッションレートを割り当てる
この例では、営業担当者ごとにコミッションレートが異なる営業チームを管理しているとします。ステータスカラムのラベルを使用して、数式内で特定のレートを示すことができます。
IF({Rate}="Rate 1",25,IF({Rate}="Rate 2",20,IF({Rate}="Rate 3",15,IF({Rate}="Rate 4",10,IF({Rate}="Rate 5",5)))))
「コミッション%」カラムには、選択されたステータスラベルに基づく関連レートが表示されています。
この式をさらに一歩進めて、MULTIPLY() 関数を組み込むことで、レートと「売上合計」カラムに基づいてコミッションを計算することができます。数式で小数を使用する場合は、不正な数式エラーを避けるため、.25 ではなく 0.25 と記述する必要があることに注意してください。
IF({Rate}="Rate 1",MULTIPLY(0.25,{Total Sales}),IF({Rate}="Rate 2",MULTIPLY(0.20,{Total
Sales}),IF({Rate}="Rate 3",MULTIPLY(0.15,{Total Sales}),IF({Rate}="Rate 4",MULTIPLY(0.10,{Total
Sales}),IF({Rate}="Rate 5",MULTIPLY(0.05,{Total Sales}))))))
動的値と静的値の比較
ボードを使って予算を管理しているなら、この数式が役に立つでしょう。この例では、各従業員の出張予算は6,500ドルとなっています。各従業員に費やされた合計額が予算内なのか、予算オーバーなのかを調べたいとします。それには、IF() ステートメントを使用して、4 つのカラムの値の SUM() を予算と比較します。
IF(SUM({Flight},{Hotel},{Insurance},{Expenses})>6500, "Over Budget","Good")
インベントリの追跡
monday.com を使うと、簡単にインベントリを管理することができます。この例では、現在利用可能なストックの計算法と、どの程度インベントリが売れたかを説明しています。
「ストックあり」カラムについて:
MINUS(MINUS({Starting Inventory},{Reserved}),{Sold})
「%販売」カラムについて:
ROUND(MULTIPLY(DIVIDE({Sold},{Starting Inventory}),100),2)
数式のフォーマット
TEXT() 関数を使えば、結果を思い通りにフォーマットできます。次のボードの1行目で簡単な例を挙げてみましょう。100に25を掛けて、出力を$2,500.00と表示したいとします。
TEXT(MULTIPLY({Starting Inventory},{Cost}),"$#,##.00")
数式の最後の部分では、それぞれの#が数字を表しています。出力を 2 つのゼロで終わらせたいため、最後に .00 を追加しましたが、出力を計算された数値で終わらせたい場合は、これを .## に置き換えることができます。$は数字の前に置きます。
TEXT() 関数を使用して数値をフォーマットした場合、数式カラムは数値を数値ではなくテキストとして読み取ることに注意してください。つまり、カラムサマリーには、数式カラムに表示されている数値の合計/平均/その他ではなく、(上記のように)「該当なし」と表示されます。
ご不明な点がございましたら、こちらから担当チームにお問い合わせください。24時間年中無休でお答え致します。
コメント