適用対象
- Pro
- Business
- Enterprise
数式の使用に関するよく寄せられる質問
Who can use this?
Plans:
- Smartsheet
- Pro
- Business
- Enterprise
Smartsheet の数式を使用すると、データを自動的に計算したり、シートのセルの内容を結合したり、日付を追跡したりすることができるため、時間の節約になります。
この記事では、数式を活用して作業スピードを向上させられるよう、スキルアップの過程でよく寄せられる質問への回答をまとめています。
さらにサポートが必要な場合
数式ハンドブック テンプレートをご活用ください。より多くのサポート リソースを見つけることができ、リアル タイムで操作を練習できるあらゆる関数の用語集や、よく使われる数式や高度な数式の例を含む、100 個以上の数式を記載しています。
Smartsheet の他のお客様がこの関数をどのように使用しているかの例を検索したり、Smartsheet オンライン コミュニティで特定の使用例について質問したりすることができます。
Smartsheet の数式に関する質問への回答
数式は別のシート内のセルを参照できますか?
はい。数式はシート間の数式を使用して、単一のセル、セルの範囲、または別のシートの列全体を参照できます。
Smartsheet では VLOOKUP 関数を使用できますか?
できます。Smartsheet にはさらに汎用性の高い INDEX と MATCH の組み合わせがあります。この組み合わせでは、大きな範囲を使うのではなく列を個別に見ることで、シート間のセル参照が少なくなります。
例については、シート間参照の数式の組み合わせに関する記事をご覧ください。
Smartsheet の VLOOKUP 関数についての詳細は、「VLOOKUP 関数」の記事に記載されています。また、Smartsheet オンライン コミュニティでは、Smartsheet の他のお客様による数式を使用したデータ収集の例をご覧いただけます。
新たに追加した列を数式に含めるにはどうしたらよいですか?
同じ数式が入っている既存の 2 つの行の上、下、あるいはその間に新しく行を追加すると、その行にも自動的に同じ数式が挿入されます。
列内のすべての値を使用する数式を作成する場合は、行範囲を削除して含める列名のみ使用します (例: =SUM([合計時間]:[合計時間]))。こうすることで、行を追加しても自動的に計算に含まれます。
列の数式を設定している場合、その数式は列に追加されるすべての新しい行に自動的に適用されます。
列タイプが記号の列を数式で制御できますか?
はい。数式に追加される文字は、使用する記号によって異なります。数式に何を追加するかについては、こちらのリストを参照してください。
- 星、フラグ、チェックボックスの記号: これらの記号について、真の場合は 1、偽の場合は 0 を使用します。
- 例: = IF([ステータス]@row = "完了済み",1,0)
- 赤、黄、緑の信号の記号:"赤"、"黄"、"緑" というリテラル値を使用します。
- 例: =IF([ステータス]@row = "リスクあり", “赤”, "緑")
- 優先度の記号: "高" または "低" を使用します。
- 例: =IF([ステータス]@row = "期日超過", "高", "低")
- 白黒の丸: "1/4 が黒、3/4 が白"、"半分が黒、半分が白"、"3/4 が黒、 1/4 が白"、"すべて黒"、"すべて白" を使用します。
- 例: =IF([% 完了]@行 = 1, "すべて黒", "すべて白")
数式を正しく入力したのに、セルに文字列として表示されてしまいます。どこに問題があるのでしょうか?
セルにテキストとして表示される理由で、可能性が高いのは次の 3 つです。
- 等号 (=) が抜けている: 数式は必ず = で始める必要があります。
- シートで依存関係が有効になっている: シートにて依存関係が有効な場合、依存関係が適用されている以下の列では数式を使用できません。
- 開始
- 期間
- 終了
- 先行タスク
- % 完了、または % 割り当て: これらの列では、依存関係の設定に基づいて値が自動的に生成され、数式が上書きされます。これらの列に数式を入力しても、そのセルには計算結果ではなく単に文字列が表示されます。
- レポートまたはモバイル デバイスから数式を作成した: 現時点では、Android や iOS のアプリ、およびレポートから数式を作成することはできません。レポートやモバイル アプリから数式を入力しても、そのセルには計算値や検索値ではなく単に文字列が表示されます。
完了率を参照する数式がうまくいかないのはなぜですか?
シートまたはレポートのセルでは、パーセント形式ではなく 10 進値を使用します。パーセント形式の値を使用する列の場合でも同様です。
パーセントの値と、パーセント形式の値を使用する参照列を比較している下の表を参照してください。
間違った数式 | 正しい数式 |
---|---|
=IF([% 完了]@row < 25%, "危険", " ") | =IF([% 完了]@row < .25, "危険", " ") |
プロジェクト シートの列に数式を作成できますか?
依存関係が有効なとき、開始日、終了日、期間、% 完了といった列にはプロジェクト機能を提供するための固有の数式が備えられています。そのため、これらの列では数式は機能せず、上書きされます。
これを回避して必要な計算を行うには、シートの依存関係を無効にするか新しい列を作成します。
日付列 (開始日/終了日) を参照している数式が機能していません。どのように修正したらよいですか?
シートの依存関係が有効になっているとき、日付列 (開始日/終了日) には潜在的な日付/時刻コンポーネントが含まれています。時刻は列には表示されませんが、数式の結果に影響します。
たとえば、開始日から TODAY() を引き算する数式があり、今日が開始日だとしましょう。通常であれば結果は 0 になると考えられます。Smartsheet は潜在的な時刻情報に基づいた計算を行おうとするため、実際には十進値が表示されます。この問題を回避するには、DATEONLY 関数を使用します。
先ほどの例を取ると、数式 =[開始日]2 - TODAY() を =DATEONLY([開始日]2) - TODAY() に修正します。
こうすると、Smartsheet は計算時に時刻ではなく日付のみを参照します。
作成日と更新日の列の差分を計算すると、間違った結果が表示されます。どのように修正したらよいですか?
DATEONLY 関数を使用します。システム列の日付は表示値であり、実際の値ではありません。システム列は UTC の日付を記録しますが、UTC の日付をもとに現地の日付/時間を表示します。DATEONLY 関数を使用しない場合は、予期しない結果が表示されることがあります。
DATEONLY を使用すると、システム列から日付が抽出されます。サンプル数式: =NETWORKDAYS(DATEONLY(作成日@row), TODAY())
Why isn't my formula with TODAY() updating to today's date?
Opening reports and dashboards that reference a sheet with a formula using the TODAY function will not update the TODAY function to the current date. There must be an update to the underlying sheet itself.
You can see a list of actions that will update the formula in the TODAY Function article.
To automatically update your underlying sheet without opening it, take a look at the Automatically update the TODAY function in formulas article or use Bridge to Schedule Daily Sheet Save.
[別のシートに移動] または [別のシートにコピー] コマンドを使用して数式を含む行を別のシートに移動またはコピーすると、数式はどうなりますか?
これらのコマンドを使用して行を移動したりコピーしたりする場合、数式は保持されません。ただし、キーボード ショートカットを使用して数式をコピーして貼り付けることができます。
数値が正しく計算されないのはなぜですか?たとえば、1 + 12 と入力すると、13 ではなく 112 という結果になります。
多くの場合、この計算エラーは、参照された値の 1 つが文字列と見なされているために発生します。
このエラーを修正するには、参照されている値に、数値を文字列に変換する文字が含まれていないことを確認してください。たとえば、値 12 の前にアポストロフィ (‘) がある場合、この事象が発生します。
この事象を捉えるには、数値の書式設定の配置を確認します。多くの場合、文字列と見なされる値は数値の通常の右揃えではなく、左揃えでセルに表示されています。
数値は以下の場合に左揃えで表示されます。
- 数式によって生成された場合
- プライマリ列にある場合
ただしこれらの値は、数式またはセルに何か別の指示がない限り、引き続き数値として認識されます。
値を返すはずの SUMIFS 関数を使っているのですが、0 が返されます。
同じ範囲のデータを複数の条件で評価する場合、正しい値が返されるように、OR 関数と @cell パラメーターを使用してください。
品目 |
数量 |
コスト |
倉庫 |
---|---|---|---|
シャツ |
26 |
20.00 |
A |
パンツ |
24 |
50.00 |
A |
靴下 |
10 |
10.00 |
A |
シャツ |
18 |
25.00 |
B |
パンツ |
16 |
75.00 |
B |
靴下 |
46 |
15.00 |
B |
数式 | 説明 | 結果 |
---|---|---|
=SUMIFS(コスト:コスト, 数量:数量, >15, 倉庫:倉庫, "A", 品目:品目, OR(@cell = "シャツ", @cell = "靴下")) |
倉庫 A の品目のうち、数量が 15 を超えるシャツまたは靴下のコストを合計します。 |
20.00 |
値を返すはずの COUNTIFS 関数を使っているのですが、0 が返されます。
同じ範囲のデータを複数の条件で評価する場合、正しい値が返されるように、OR 関数と @cell パラメーターを使用してください。
品目 |
数量 |
コスト |
倉庫 |
---|---|---|---|
シャツ |
26 |
20.00 |
A |
パンツ |
24 |
50.00 |
A |
靴下 |
10 |
10.00 |
A |
シャツ |
18 |
25.00 |
B |
パンツ |
16 |
75.00 |
B |
靴下 |
46 |
15.00 |
B |
数式 | 説明 | 結果 |
---|---|---|
=COUNTIFS(数量:数量, >15, 倉庫:倉庫, "A", 品目:品目, OR(@cell = "シャツ", @cell = "靴下")) |
倉庫 A の品目のうち、数量が 15 を超えるシャツまたは靴下の数量を数えます。 |
1 |
文字列を生成する数式では、「連絡先」セルに値を文字列として返せますか?
はい。数式で参照されるセルが文字列であり、メール アドレスを作成しない場合は、単に文字列として返されます。
「連絡先」列ではどのような関数を使用できますか?
「連絡先」列では、連絡先の値を返す関数を使用することができます。利用可能な関数をいくつかご紹介します。
- Equals Contact cell: =[割り当て先]1
- VLOOKUP: =VLOOKUP([割り当て先]1,{部署名},2,false)
- PARENT: =PARENT()
- INDEX(MATCH()): =INDEX({部署名},MATCH([割り当て先]1,{名前},0))
- IF: =IF(緊急度1="高",[緊急オンコール]1,[割り当て先]1)
以下に、これらの数式の具体的な使用例をご紹介します。
サンプル シート情報:
行 | プロジェクト名 | 割り当て先 | 日付 | % 完了 | ステータス |
---|---|---|---|---|---|
1 | プロジェクト - E | S ブラウン | 03/25/20 | 30% | 赤 |
2 | アウトリーチ | don.t@domain.com | 10/18/20 | 60% | 黄 |
3 | Smartsheet - PM | アンディ・デイビス | 01/06/20 | 100% | 緑 |
4 | コレクション - INT | ジョニー・アップル、S ブラウン | 02/12/20 | 20% | 赤 |
上記の表をもとに、連絡先の数式を使用した例をいくつかご紹介します。
数式 |
説明 |
結果 |
---|---|---|
=INDEX([プロジェクト名]:[プロジェクト名], MATCH("アンディ・デイビス", [割り当て先]:[割り当て先])) |
割り当て先列にアンディ・デイビスという値を含む行のプロジェクト名列の値を返します。 |
Smartsheet - PM |
=COUNTIF([割り当て先]:[割り当て先], HAS(@cell, "S ブラウン")) |
割り当て先列に S ブラウンという値が入っている行の数を数えます。 |
2 |
=VLOOKUP("don.t@domain.com", [割り当て先]:[日付], 2, false) |
日付を返します。割り当て先列の値がメール アドレス don.t@domain.com に等しい場合、その行の日付列の値を検索して生成します。 |
10/18/20 |
数式を使って新しい連絡先を作成する方法はありますか?
現在、数式を使って新しい連絡先を直接作成する方法はありません。組織のメール アドレスが特定のパターンに従っている場合、複数の列を使用して新しい連絡先を作成できます。(例: first.last@domain.com)
作成するには、first.last 列と @domain.com 列を用意します。JOIN 関数を使用すると、この 2 つのフィールドを同じ「連絡先」セルにまとめ、希望通りの連絡先を作成することができます。
「連絡先」列にて、連絡先または文字列以外のデータを出力する数式を使うことはできますか?
連絡先または文字列以外のデータ タイプ (日付、数字、ブール型など) を出力する数式は、エラー コード #CONTACT EXPECTED を返します。これは、現在の「日付」列の仕組みに似ています。「日付」列では、数式にて日付および文字列以外のデータを出力すると、「#DATE EXPECTED」が返されます。「チェックボックス」列も同様で、エラー #BOOLEAN EXPECTED が返されます。