Excelの表に書かれている項目を確認して、複数のブックにデータを分割したい場合があります。例えば、長い顧客データを住所の項目を見て市区ごとにブックを分けたい場合などです。その際、手作業でExcelの表から一つ一つコピーして、異なるブックに振り分けたりすることはないでしょうか。PC版のなでしこを使えば自動で処理できます。

  • Excelファイルを住所を元にして複数ブックに分割しよう

    Excelファイルを住所を元にして複数ブックに分割しよう

なでしこ3のPC版を活用しよう

なでしこ3のPC版のインストールについては、前回でも紹介しています。今回のようなExcel処理に便利なのは、なでしこ3のPC版です。なでしこ3のPC版は、Windows/macOS/Linuxとマルチプラットフォームで動作します。

特に、Windowsで手軽に使えるように配慮しており、こちらからダウンロードできるWindows版では、なでしこ3の動作に必要なNode.jsランタイムなど必要なツール一式を同梱したZIPファイルを配布しています。

新しくなったプラグインのインストール機能

なでしこ3PC版では、便利なプラグインは、ネットワークから最新版を必要な時に追加する仕組みとなっています。そのため、プラグインは、一覧を確認して、コマンドラインからインストールするという手順が必要でした。しかし、なでしこ3のPC版エディタの「nako3edit」から一覧から選んでインストールできるようになりました。

  • プラグインのインストールが簡単に

    プラグインのインストールが簡単に

手順ですが、Windowsでは、実行ファイル「start.exe」を実行してメニューを起動して、「なでしこ3のPC版(Node.jsランタイム)を実行」ボタンをクリックして、「nako3edit」を起動します。macOSやLinuxではコマンドラインから「$(npm prefix)/node_modules/.bin/nako3edit」を実行します。

そして、nako3editが起動したら、画面上部にある「プラグイン」の追加をクリックすると上の画面が表示されます。そして、インストールしたいプラグインを選んでインストールします。

nadesiko3-officeプラグインをインストールしよう

さて、今回のプログラムを実行するには「nadesiko3-office」プラグインが必要になります。上記の「プラグインの追加」画面から「nadesiko3-office」を探して「追加」ボタンを押してインストールしましょう。

macOSやLinuxでは、ターミナルで「npm install nadesiko3-office」とコマンドを実行することでも、プラグインをインストールできます。

なお、このofficeプラグインを使う場合、Excelファイル自体を操作するので、本体のインストールは不要となります。

Excelファイルを住所で分割するプログラム

それでは、今回の本題となるプログラムを作成しましょう。最初に、サンプルのExcelファイルを確認してみましょう。ここで利用するのは、次のような顧客名簿のファイルです。こちらからダウンロードできます。この顧客名簿のExcelファイルをB列(住所1)を元に異なるブックに分割しましょう。

  • 今回利用するサンプルの顧客名簿データ

    今回利用するサンプルの顧客名簿データ

ダウンロードしたら、この名簿ファイルをデスクトップに「sample.xlsx」という名前でコピーしておきます。

プログラムを作って実行しよう

先ほど紹介した手順で「nako3edit」(なでしこ3のPC版エディタ)を起動しましょう。そして、「新規ファイルの作成」ボタンをクリックします。エディタが表示されたら、そこに次のプログラムを記述しましょう。

!「nadesiko3-office」を取り込む。
# Excelファイルを読む --- (*1)
「{デスクトップ}/sample.xlsx」のエクセル開く。
# シート内の全データを読み取る --- (*2)
「A2」から「E999」のエクセル一括取得して住所データに代入。
# 辞書型データに分割する --- (*3)
分割辞書={}
住所データを反復:
  変数[F名前, F住所1, F住所2, F住所3, 担当者]は対象。
  もし、F名前===NULLならば、抜ける。
  もし、分割辞書[F住所1]===undefinedならば:
    分割辞書[F住所1] = []
  分割辞書[F住所1]に対象を配列追加。
# 分割したデータをExcelファイルに貼り付けて保存 --- (*4)
住所リストで分割辞書を反復:
  ファイル名=「{デスクトップ}/名簿-{対象キー}.xlsx」
   「保存: {ファイル名}」を表示。
  エクセル新規ブック。
   「A1」に[["名前","住所1","住所2","住所3", "担当者"]]をエクセル一括設定。
   「A2」に住所リストをエクセル一括設定。
  ファイル名にエクセル保存。

画面下部の「実行」ボタンを押してプログラムを実行すると、デスクトップに「名簿-(住所).xlsx」というExcelファイルが保存されます。なお、Excelファイルが開いたままだと、読み取りエラーが出るので、Excelファイルを閉じた状態で実行しましょう。

  • プログラムを実行したところ - 複数のExcelブックが作成される

    プログラムを実行したところ - 複数のExcelブックが作成される

プログラムを確認してみましょう。(*1)では、デスクトップに配置したExcelファイルの「sample.xlsx」を読み取ります。

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら