FAQ
NULL 値を使ってフィールド演算すると、NULL 値が返る場合の対処法

ナレッジ番号:3247 | 登録日:2023/05/29 | 更新日:2026/02/09

概要

NULL 値を使用してフィールド演算を行うと、その結果は NULL 値となります。例えば下図のように、[Value1] [Value2] [Value3] の値を加算するフィールド演算を行った場合、いずれかの値が NULL である場合は演算結果が NULL となります。



この場合、あらかじめ NULL 値を 0 など別の値に置き換えてから加算処理を行うことで対処できますが、フィールド演算で ReplaceNull 関数を用いることにより、事前に値を変更することなく演算処理を行うことができます。

対処法

ArcGIS Pro の場合

  1. 属性テーブルで入力先のフィールドを右クリック → [フィールド演算] をクリックします。
  2. 必要に応じて、以下の 3 つのパラメーターの設定を行います。
    • [入力テーブル]: 処理対象のデータ
    • [フィールド名]: 入力先のフィールド名
    • [条件式の種類]: Python
  3. 条件式の欄に、演算のための式を入力します。以下は 3 つのフィールドの値を加算するための式です。「ReplaceNull」は NULL 値を 0 に置き換えるための関数ですが、その処理内容の記載は、後述の [コード ブロック] にて行います。
    ReplaceNull( !Value1! ) + ReplaceNull( !Value2! ) + ReplaceNull( !Value3! )
    

    ※「!ValueX!」の部分を、NULL 値を 0 に置き換えたいフィールドの名前に変更してください。


  4. [コード ブロック] で、以下のスクリプトを入力します。
    def ReplaceNull(val):
      if val is None:
        return 0
      else:
        return val
    



  5. [OK] をクリックしてフィールド演算を実行します。下図のように、NULL 値が 0 と見なされた計算結果を得ることができます。 


ArcMap の場合

  1. 属性テーブルで入力先のフィールドを右クリック → [フィールド演算] をクリックします。
  2. [形式] で [Python] を選択します。
  3. [コードブロックを表示] にチェックを入れます。
  4. [Pre-Logic Script Code] で、以下のスクリプトを入力します。
    def ReplaceNull(val):
      if val is None:
        return 0
      else:
        return val
    
  5. 条件式の欄に、演算のための式を入力します。以下は 3 つのフィールドの値を加算するための式です。
    ReplaceNull( !Value1! ) +ReplaceNull( !Value2! )+ ReplaceNull( !Value3! )
    

    ※「!ValueX!」の部分を、NULL 値を 0 に置き換えたいフィールドの名前に変更してください。

  6. [OK] をクリックしてフィールド演算を実行します。

注意 

  • Python スクリプトでは、行のインデント(行頭のスペースの数)が意味を持ちます。手入力で変更を加える場合、注意して入力してください。 
  • 手入力で変更を加える場合、フィールドの値として入力する式の後に改行を入力しないようにご注意ください。
  •  

メタデータ

種類

機能

製品

バージョン