下図のようにB列の文字をA列のように埋めていきたいと思ったのですが調べてもピンポイントのものが見つけられなかったので書くことにしました。エクセルにジャンプ機能を使った方法もあるのですが関数で、できれば配列で済ませる方法が見つけたかったのです。
3つほど方法があったのでご紹介していきます。
1つ目はA列の各行にC列に表示させている数式を入力する方法です。
B行が空でないならそのままB行を参照し、B行が空だったらA行の一つ上を参照する数式
で便宜的にA2から数式を入力してます。
A2だけ入力して必要なところまでオートフィルすれば完了です。
2つ目の方法は上記の数式をARRAYFORMULAを使用して配列にします。
そのままでは循環依存エラーが出てしまいます。
そのためファイル→設定→計算→反復計算をオンにします。
しきい値を0にして、最大計算回数を指定します。
しかしシートに大量に数式がある場合、処理が重いことがわかりました。
3つ目は、反復計算をオフにしてラムダ関数で再帰処理を行い、配列で表示させる方法です。
データ→名前付き関数から作成します。
任意ですが、名前はFILL、変数は対象と定義します。
数式の内容はB列の対象のセルが空白であったら上のセルを調べ、空白でないものを表示するというものです。
FILL関数が定義できたら、A1に以下のラムダ関数を配列で扱うためのmap関数の数式を入力します。
うまく表示されなかったら、IFERRORを一旦削除してください。
この処理もやや重でした。あと名前付き関数はブック内しか使えないので
エクスポートはできますが使い勝手が悪いです。
1つ目の方法が無難でしょうが、自己満足はできました。