課題
観光庁の「旅行・観光消費動向調査」のExcel資料「2025年7-9月期 集計表(1次速報)」の「表題」シートを機械判読可能なデータ型CSVに加工する。
Webサイト:https://www.mlit.go.jp/kankocho/tokei_hakusyo/shohidoko.html
Excel:「2025年7-9月期 集計表(1次速報)」
https://www.mlit.go.jp/kankocho/content/001968902.xlsx
「表題」シートを表示する。

加工ポイント
- 2行目がヘッダーであり、1行目は不要。
- B列に、その行のIDに相当する情報(表番号)がある。
- A列は、データの区分を表しているが、先頭の行にのみ記載されている。
データ考察
ヘッダーらしき部分を表示する。

ヘッダー
- 1行目はこのシートのタイトルで、データとしては不要。
- 2行目がヘッダーになる。
列
- B列に、その行のIDらしき情報(表番号)が記載されている。
- 第1表、第2表、第3表、、、
- A列は、データの切れ目に区分を表している。
- (旅行・観光の動向)、(国内旅行の動向)、(国内旅行の地域別動向)
データ加工の考え方
「表題」シートをBODIKエディタで表示する。

余分な行・列
- 0行目は削除する。
- 20行目以降を削除する。
- 表の中にも不要な行がある
- 2行目(旅行・観光の動向)
- 12行目(国内旅行の動向)
- 17行目(国内旅行の地域別動向)
- 0列目の「動向の種類」は、今回は不要として削除する。
ヘッダー
- 1行目をヘッダーにセットする。
ゴール(作成するCSV)
元データを加工して次のようなCSVを作成する。

項目ヘッダー
表番号
表頭
表側
集計事項
解答(スクリプト)
スクリプトの例を示す。
解答例1
スクリプトを1行ずつ適用して結果を確認しながら進めると、このようなスクリプトになる。
スクリプト
# 上下の不要な行を削除する
del_row 20:,0
# 表の中の不要な行を削除する
del_row 16,11,1
# 0列目を削除する
del_col 0
# 0行目をヘッダーにセットする
set_header
説明
#
20行以降、0行を削除する。
#
16行目、11行目、1行目を削除する。
#
0列目を削除する。
#
先頭行をヘッダーにセットする。
解答例2
行を削除すると、削除した行の後ろの行番号が「考え方」で記載した番号とずれてしまう。
行を削除するときは、行番号の大きな行から削除すると、後から見たときにわかりやすい。
スクリプト
# 不要な行を削除する
del_row 20:
del_row 17
del_row 12
del_row 2
del_row 0
# 0列目を削除する
del_col 0
# 0行目をヘッダーにセットする
set_header
説明
#
20行目以降を削除する。
17行目を削除する。
12行目を削除する。
2行目を削除する。
0行目を削除する。
#
0列目を削除する。
#
先頭行をヘッダーにセットする。
まとめ
- 番号で指定する del_col, del_row などの更新系のスクリプトは、番号の大きな方から処理すると間違いが少なくなる。
- 特に行を削除するスクリプト(del_row、merge_rowなど)を実行すると、削除した行より後ろの行番号が変更されることに注意が必要。
BODIKエディタのスクリプトマニュアル
このページは、BODIK Utilityの BODIKエディタのスクリプト機能 のマニュアルです。 スクリプト一覧 区分 スクリプトコマンド 機能 記述例 列操作 hide_col 列を隠す hide_col <列 […]

