このノートでは条件をもとに欠損値を置き換える方法を紹介します。
例えば以下のように1行が1日の売上計画や広告費用を表すデータがあったとします。
このデータを用意したときには、まだ12月の広告費用が決まっていなかったため、全ての値が欠損値になっていますが、以下のように広告費用を割り当てることが決まったとします。
このようなときには、「条件をもとに欠損値を置き換える」ことで、現在、欠損値である「広告費用」の欠損値を埋めることが可能です。
今回は、「広告費用」の列の欠損値を埋めたいので、「広告費用」の列ヘッダーメニューから、「計算を作成」の「条件付き」を選択します。
すると以下のように「条件を元に計算、または値を置き換える」のダイアログが開きます。
条件を設定するときには、条件の「+」アイコンをクリックします。
すると条件を指定するためのダイアログが開きます。
まずは12/10以前の広告費用の欠損値を指定するために、列に「注文日」、演算子に「以前」、値に「2023/12/10」を選択しOKボタンをクリックします。
すると、注文日が2023/12/10以前という条件が指定されます。
このとき、全ての行の値が欠損値であれば、これ以上の設定は不要ですが、仮に何らかの値が入っている行が存在して、そういった行の値は置き換えたくない場合は、条件に「欠損値である」ことを追加する必要があります。
そういったときには、条件の追加ボタンをクリックして、
広告費用が欠損値であるという条件を追加する必要があります。
今回、欠損値を埋めたい「広告費用」の列は全ての行が欠損値ですので、上記の条件を追加せずに、設定を進めます。
新しい値のタイプには「数値」を選択し、「1000」と入力します。
なお、もし新しい値に特定の列の値を返したいときには「列」、欠損値を返したいときには「欠損値」、指定した計算結果を返したいときには「計算」を選択します。
これで、12/10以前の広告費用を「1000」ドルで埋めるための条件と新しい値を指定できました。
続いて、12/11-15の間の広告費用の欠損値を埋めるための条件を追加するために、条件の追加ボタンをクリックします。
すると、新しい条件を追加するためのダイアログが表示されるので、12/15以前という条件を指定します。
このとき、条件を指定して置換は、それまでの条件(上位の条件)が満たされない場合にのみ適用されます。
先程12/10以前という条件を設定したので、そちらに合致しない、つまりは、12/10より後の日付のデータに対する行に対する条件を指定すればいいので、12/15以前という条件を設定するだけで、自動的に12/11から12/15の間の行に条件が合致することになるわけです。(演算子に「範囲内」を選択して日付の範囲を直接指定することも可能です)
2つ目の条件を追加できたら先程と同じように、新しい値に「1500」を指定します。
最後に12/16以後の広告費用の欠損値を埋めます。
12/16以後の物件の広告費用は全て「2000」ドルです。そういったときには「12/16」以後と条件を追加する必要はなく、「デフォルト」値を使って、設定した一連の条件に該当しない行に対して返す値を指定できます。
今回、デフォルトには数値として「2000」ドルを指定したいので、新しい値に「数値」を指定して「2000」とタイプします。
これで条件をもとに欠損値を置き換えることができます。
今回は「広告費用」の列を新しい値で上書きしたいので、「対象の列を上書き」にチェックを付けて実行します。
これで、条件を元に「広告費用」の欠損値を埋めることができました。