> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 数式・関数のよくある質問

> 回答：数式が誤っている場合や、現在の行に基づいて結果を計算できない場合は、セル内にエラーコードが表示されます。各コードの意味は数式エラーコード一覧をご参照ください。

<AccordionGroup>
  <Accordion title="数式を書いた後、セルに #REF! などのエラーが出るのはなぜですか？">
    数式が誤っている場合や、現在の行に基づいて結果を計算できない場合は、セル内にエラーコードが表示されます。各コードの意味は [数式エラーコード一覧](/ja/aitable/formulas/error-codes) をご参照ください。
  </Accordion>

  <Accordion title="数式が無効と表示される原因は？">
    以下の点を順にご確認ください。

    **記号の問題**

    * 演算子や括弧が英数字記号でない（中国語の引用符 "" は英数字の引用符 "" に修正してください）。
    * 括弧の数が一致していない（例：`IF(TRUE,0,1))` は閉じ括弧が不足しています）。

    **データの問題**

    * 参照しているフィールドが削除済み、または存在しない（例：`SUM([フィールド A])` のフィールド A が見つからない）。

    **書式の問題**

    * パーセント値は小数で計算に使う必要があります（例：10% は 0.1 と入力）。

    **構文の問題**

    * 演算子の使い方が誤っている。

    **同期の問題**

    * 同期前に、データの形式が正しく整っていることを確認してください。
  </Accordion>

  <Accordion title="AI テーブルの数式で「等しくない」はどう表現しますか？">
    AI テーブルの数式フィールドでは、**`!=`** が「等しくない」を表します。
  </Accordion>

  <Accordion title="AI テーブルの数式で「空値」はどう表現しますか？">
    数式に直接 `= ""` と入力するか、`ISBLANK()` 関数でセルが空かどうか判定できます。
  </Accordion>

  <Accordion title="AI テーブルの数式に絵文字や記号を入力するには？">
    * **Mac の場合**：数式を書く際にテキスト入力欄を右クリックし、「絵文字と記号」を選んで、任意の絵文字や記号を選択します。
    * **Windows の場合**：数式を書く際に **Win キー + .（ピリオド）** を同時に押し、絵文字キーボードから任意の絵文字や記号を選びます。
  </Accordion>

  <Accordion title="AI テーブルの数式フィールドは、他のフィールドタイプに変換できますか？">
    可能です。数式フィールドはテキスト、数値、複数選択、単一選択などのタイプに変換できますが、計算済みの結果のみが残ります。変換後は、当該フィールドは数式による自動計算機能を持たなくなります。
  </Accordion>

  <Accordion title="AI テーブルの数式フィールドを他のフィールドタイプに変換するには？">
    タイトルを右クリックして「フィールド／列を編集」を選び、表示された設定パネルで「フィールドタイプ」を希望のタイプに変更します。

    注意：

    * 数式フィールドを他のフィールドタイプに変換すると、数式による自動計算機能を失い、変換後フィールドの特性のみが残ります。
    * 数式フィールドの戻り値は複数の形式タイプを取り得るため、他のフィールドタイプに変換後、適合しない場合があります。実際のニーズに応じて慎重に操作してください。
  </Accordion>

  <Accordion title="AI テーブルの数式フィールドで合計演算を行うと、戻り値が空またはエラーになるのはなぜですか？">
    フィールドタイプが合計演算をサポートしていない可能性があります。現状、テキストタイプのフィールドには合計演算を行えません。フィールドを数値タイプに変換してから合計をお試しください。
  </Accordion>

  <Accordion title="AI テーブルの数式フィールドの戻り値の形式を調整するには？">
    数式の演算後、戻り値の形式を調整するには、タイトルを右クリックして「フィールド／列を編集」を選び、数値形式から希望する形式を選んでください。

    #### **問：数式フィールドの表示形式を変更するには？**

    答：フィールドのタイトルをダブルクリックして編集モードに入り、**数値形式** のドロップダウンから希望する形式（整数、小数、桁区切り、パーセンテージ、通貨、日付など）を選びます。

    **対応する形式：**

    * 数値系：整数、小数、桁区切り
    * 専門系：パーセンテージ、通貨
    * 日付系：日付形式
  </Accordion>

  <Accordion title="`TEXT()` 関数が返したテキストで計算するとエラーになるのはなぜですか？">
    `TEXT()` 関数の戻り値はテキスト形式です。`SUM()`、`ABS()` などの数値関数で数値に変換してから計算する必要があります。
  </Accordion>

  <Accordion title="合計結果が正しくない原因は？">
    **フィールドタイプの誤り**：合計に対応するのは数値または数式フィールドのみで、テキストフィールドは数値に変換が必要です。

    **精度の問題**：小数点以下の桁数が多い場合、小数点以下 4 桁に調整して再計算することを推奨します。
  </Accordion>

  <Accordion title="日付関数の計算結果のデータ形式は？">
    * 保存形式：タイムスタンプ（例：45071 は 2024-01-01 を表します）。
    * 表示形式：フィールド設定で日付に調整できますが、データ自体はタイムスタンプのままです。
    * フィルター規則：数値ロジックで処理します（例：> 45071 は 2024-01-01 より後の日付を表します）。
  </Accordion>

  <Accordion title="テキスト連結時に日付が数値で表示される？">
    直接連結すると日付がタイムスタンプに変換されてしまいます。`TEXT()` でテキストに変換してください。

    例：`[氏名] & "の誕生日は" & TEXT([生年月日], "yyyy-mm-dd")`
  </Accordion>

  <Accordion title="数式の結果が日付になるはずなのに、数値として表示される？">
    フィールド名をダブルクリックし、形式を日付に設定すれば解決します。
  </Accordion>

  <Accordion title="数式で「空値」を表すには？">
    * 直接判定：`[フィールド] = ""`
    * 関数を使う：`ISBLANK([フィールド])`

      **例：**

      `IF(ISBLANK([日付]), "空", "空ではない")`
  </Accordion>

  <Accordion title="`IFS()` 関数が `#N/A` を返す原因は？">
    兜底条件として `TRUE` を追加する必要があります。

    **例：**

    ```excel formula  theme={"theme":{"light":"github-light","dark":"github-dark"}}
    IFS(
     [成績]=100, "満点",
     [成績]>=85, "優秀",
     [成績]>=75, "良好",
     [成績]>=60, "合格",
     TRUE, "不合格"  // 必須の兜底条件
    )
    ```
  </Accordion>

  <Accordion title="特定の営業日後の日付を計算するには？">
    `WORKDAY()` 関数を使い、引数に開始日、日数、任意の祝日を指定します。

    構文：`WORKDAY(開始日, 日数, [祝日配列])`

    例：

    * `WORKDAY("2024/11/01", 10)` → 10 営業日後の日付を計算します。
    * 祝日をカスタマイズする場合は、まず日付配列フィールドを作成して引数として使う必要があります。
  </Accordion>

  <Accordion title="数式フィールドで参照できるフィールドの最大数は？">
    1 つの数式フィールドで最大 300 個までのフィールドを参照できます。
  </Accordion>

  <Accordion title="行ごとに基本的な演算を行うには？">
    数式フィールドを新規作成し、関連するフィールドを直接参照したうえで、演算子を加えます。例：`[フィールド 1]+[フィールド 2]*[フィールド 3]`
  </Accordion>
</AccordionGroup>

### AI テーブル 2.0 の数式・関数特集：

<AccordionGroup>
  <Accordion title="フィールドが「数値」に見えるのに、「より大きい／より小さい」などの数値判定ができないのはなぜですか？">
    **数式の「出力タイプが揃っていない」ため、数値が「テキスト」になっている可能性があります。**

    例えば、**フィールド 1** の数式が次のように書かれている場合：IF( \[売上] > 0, \[売上], "売上なし" )

    ・**問題点**：この数式は条件を満たすときに **数値**（100 など）を返し、満たさないときに **テキスト**（「売上なし」）を返します。

    ・**システムの処理**：列全体のデータ形式を揃えるため、システムはテキストに合わせざるを得ず、当該フィールド内のすべての数値も **テキスト** として扱われます（数値の 100 が、テキストの「100」になります）。

    ・**結果として**：**フィールド 2** で **フィールド 1** を参照して計算（\[フィールド 1] > 50 など）すると、テキストと数値は数学的に比較できないため、数式が無効になったり、誤った結果になったりします。

    **✅ 解決方法：** IF 関数の 2 つの結果のデータタイプを揃えてください。

    ・**誤った書き方**：IF(..., \[数値], "テキスト")

    ・**推奨される書き方**：IF(..., \[数値], 0)（テキストを 0 に置き換え、すべて数値で揃える）
  </Accordion>
</AccordionGroup>
