Excel表で、縦横に並んだ項目を1件1行の形式に変換
ビジネススキル次に数式を修正して、結果を縦1列に並べる(図4)。TOCOLは配列を縦1列の配列に変換する、Excelの最新関数だ。以前のカレンダー変換でも利用したが、1件1行変換では不可欠といっていい。

図4 図3の数式を図のように書き換える。赤字部分は図3と同じで、その結果をTOCOL関数で縦1列の配列に変換する。1件1行変換では欠かせない、Excelの最新関数だ
関数不要のフラッシュフィル、数値変換までやってくれる
この後は文字列を分解して受診者、支払先、金額を、それぞれ別のセルに表示する。カレンダー変換の際はTEXTSPLIT(テキストスプリット)関数を使ったが、今回はもっと直感的でわかりやすい方法にしよう。「フラッシュフィル」だ。
図5のようにサンプルを1件だけ手入力してフラッシュフィルを実行すると、残りのデータを推測して文字列を切り出してくれる。受診者、支払先、金額のそれぞれについて実行しよう。先頭の金額がない場合や、うまく推測してくれなかった場合は、サンプルを複数入力してみるとよい。

図5 TOCOL関数式の先頭右隣に、左側の受診者をサンプルとして1つ入力して同セルを選択(1)。「データ」タブの「フラッシュフィル」を押すと(2、3)、残りを推測して自動入力してくれる。支払先と金額も同様にフラッシュフィルで抜き出す。この機能はカレンダー変換で使ったTEXTSPLIT関数と違い、取り出した文字列の数値への変換までやってくれる
あとは、金額がない行を消す。手作業で1つずつ消す、並べ替えてから消す、テーブルに変換して絞り込む、など方法は多々あるが、FILTER関数なら数式一発で完了(図6)。これは条件を指定して配列を絞り込む関数で、対象の配列と条件の配列を指定する。ここでは「金額が空でない」という意味の論理値の配列を条件に指定した。

図6 これまでの作業を見渡してみた。最後に、どこかのセルに図のFILTER関数式を入力すれば完了。金額がない行を手作業で削除してもよいが、スマートにやるなら最新関数のFILTERがオススメ。条件を指定して配列のデータを絞り込める。条件は論理値の配列で指定し、ここでは「金額が空白でない」という意味の「E6:E17<>""」とした
(日経PC21 服部雅幸)
[日経PC21 2023年2月号掲載記事を再構成]