Posts

DTPでよく使うエクセル関数の使い方を丁寧に紹介【まとめ】

Image
はじめに 注意: 関数の挙動についてはMac版Excelでの確認になります。Windows版については動作確認をしておりません。予めご了承ください。 DTP業界に従事していて、Excelを使ってのテキストの整形作業を行っている人はどれだけいるのかわかりませんが、自身はかなり多用しています。 筆者の仕事は、そうした方が効率的な内容のものだからです。 それらは、InDesignで「データ結合」することを前提としています。 名刺の大人数発注 DMなどの宛名印字 情報を冊子用テキストに変換 上記の上2つは、Excelで作成された名簿・個人録・一覧が、顧客より渡される場合が多くあります。そのテキスト類をExcel関数で加工し、レイアウトフォーマットに適合するようにします。 3番目は、予め関数を組み込んだExcelを顧客に渡し、それに必要なテキストを入力してもらいます。そして、入力されたテキストを別シートへ、関数で加工しながら読み込み、レイアウトフォーマットに適合するようにします。 これをすることで、作業効率は飛躍的に向上します。 手作業がほぼ無くなるので、反復作業から解放されます。 Excel関数での処理の考え方 Excel関数を使用することで、作業に伴うリスクを極力抑えることもできます。 テキストを手作業で加工する必要がなくなる。 →加工ミス、加工し忘れ、コピペミス、などのリスクを避けられる 原稿自体を触る必要がなくなる。 →ミスがどこの段階で発生したかが分かる 関数は原稿を参照するだけで、原稿を変更することはないからです。 目次―使用頻度の多い関数 DTPでよく使用する関数は、テキスト整形に関係するものになります。 以下に、よく使用する関数の一覧を挙げています。リンクから、各関数の使い方を紹介しているページへ行ってみてください。 ADDRESS AND ASC CHAR CLEAN COLUMN CONCAT CONCATENATE COUNTIF FIND IF IFS INDIRECT ISBLANK ISERROR ISINDEX JIS LEFT LEN MID NOT OR ROW RIGHT SUBSTITUTE TEXTJOIN TRIM VLOOKUP

PythonのopenpyxlでExcelの行と列を入れ替えてみた

Image
今回のPythonの勉強は、Excelの行と列を入れ替えることをしてみました。 予め、都道府県とその都道府県庁所在地をリスト化したExceを用意し、そのリストの行と列を入れ替えたものを新しい別のシートに作成するというもの。 以下がExcelファイル「Example.xlsx」の中身。 Pythonのコードは以下の通り。 解説はコード内にコメントしてあります。 #openpyxlモジュールを使用する import openpyxl #既存のExcelファイルを開く wb=openpyxl.load_workbook('Example.xlsx') #既存ファイルのシートを指定 sheet1=wb['Sheet1'] #既存ファイルに新規シートをシート名と位置を指定して作成 sheet2=wb.create_sheet(title='Sheet2',index=1) #Sheet1の値のある行数を取得 rw=sheet1.max_row #Sheet1の値のある列数を取得 cl=sheet1.max_column #iは値のある行数分繰り返す #jは値のある列数分繰り返す #range(start,stop)はstart≦i<stopでstopで指定した値は含まないので「+1」している for i in range(1,rw+1): for j in range(1,cl+1): C1=sheet1.cell(row=i,column=j) #sheet1のセルの行番号と列番号を指定している C2=sheet2.cell(row=j,column=i) #sheet1のセルの行番号と列番号を入れ替えてsheet2のセルを指定している C2.value=C1.value #sheet2のセルにsheet1のセルの値を代入 wb.save('Example.xlsx') #上書き保存 結果は以下の通り。 最初のリストの行数は6、列数は2。つまり、 rw=sheet1.max_row=6 cl=sheet1.max_column=2 for文は、 for i in range(1,7): #1≦i<7、つまり1

【まとめ】Pythonのopenpyxlで行うExcelの基本操作

Image
Pythonの勉強を再開し、Excelを操作して自動化させるべく色々と進めています。 使用本は、『 退屈なことはPythonにやらせよう〜 』、私が購入したのは 初版第1刷で2017年発刊分 です。 Github の方にある正誤表の中身を本に書き写しておきます。 この本の12章がExcelに関することで、ここを中心に、わからない場合は他の章を参照して進めています。 私の環境は、Ubuntuの公式Docker ImageにPythonやopenpyxl、JupyterLabをインストールして、Pythonの結果が随時確認できるようにしています。詳細は、拙ブログ『 【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法 』にまとめています。 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 仮想環境:Docker Desktop エディタ:JupyterLab Python:Ver.3.8.2 openpyxl:Ver.3.0.5 Excelを操作するといいながら、以下の画像はGoogleスプレッドシートです。ファイルは拡張子「.xlsx」で保存すれば、Excelが無くてもPythonで操作が可能で、GoogleスプレッドシートでもOpenOfficeで開きますので確認も可能です。 そんな中、Excelを操作する基本的なコードを備忘録としてまとめました。 #openpyxlモジュールを使用する import openpyxl #新規Excelファイルを開く wb=openpyxl.Workbook() #このExcelを保存する wb.save('example_copy.xlsx') #新規ファイルのシート名を確認する wb.sheetnames #シート名は「Sheet」の1シートのみある状態 #シート「Sheet」を指定する wb['Sheet'] #シート名を取得する wb['Sheet'].title #シート「Sheet」のシート名を変更する wb['Sheet'].title='Example 1' #シート名を確認する

なぜPython?Excelを操作して自動化したいのです!その方法と注意点

Image
昨日まででDockerでの開発環境構築は一応完成し落ち着いたので、やっとPythonの勉強を再開することにしました。 自分の現在のPythonの勉強方法と、ちょっと注意すべきことがありましたので以下に述べていこうと思います。 目次 なぜPython?それはExcelを操作して自動化したいのです Pythonの教科書として購読中の書籍 PythonでExcel操作の開始 注意点 なぜPython? それはExcelを操作して自動化したいのです そもそもPythonを覚えて何をしたいか。 それは Excelを操作して自動化したい 、ということです。 私の本職は一応デザイナーを名乗っていて、ロゴ制作やWEB制作などをしていますが、InDesignで組版もしています。というか前職のメインはこちらでした。 冊子を組版したりもしていましたが、バリアブル印刷用にExcelでテキスト処理(主に関数を駆使して)してInDesignにデータ結合などで流し込みをしたりもよくしていました。 Excel関数だと関数自体が煩雑になりやすくて、自分で作っておきながら後で見返すと何がなんだか分からなくなる、それほどです。 で、このExcelでのテキスト処理をもっと効率よくしたいと。 Pythonの教科書として購読中の書籍 Python本は、『 Python本のオススメと絶対に挫折しないための学習方法とは | ガンマソフト株式会社 』を参考に以下のものを購入しました。 そもそもこの本を進めていって、 TurtleやTkinterが動かなくて、DockerでGUIライブラリを稼働させるように構築しよう と思った次第です。それだけでも買ってよかったです。 この書籍の後半は人工知能の話になるので割愛しましたが、懇切丁寧な解説でPythonの敷居を低めてくれました。 続けて、こちらを購入しました。Pythonの文法といいますか書き方といいますか、1冊目より深い解説をされていて、辞書的に使えるかなと思っています。ですので、この本は全体をざっと読むに留め、不明点がある時に読み返そうと思います。 後半はGUIの操作やゲームを作ることをしますので、そちらに興味のある方はいいのではないでしょうか。 PythonでExcel操作の開始 そして今

【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法

Image
PythonのGUIライブラリをDocker Container内で稼働させたく模索して1週間、よもやカスタマイズしたDocker Imageを作成するどころかDockerfileやらDocker Composeやらを書くことになる日がこんなに早く来るとは思っても見ませんでした。 習うより慣れろ この言葉、使い倒されてもはや陳腐化しているこの言葉、やはり真理を突いています。 この言葉の真意、それは「インプットしたら即座にアウトプットしろ」。 真意を理解できた、そんな1週間でした。 さて、 MacでPythonのGUIライブラリをDocker Container内のJupyterlabから稼働させる方法 MacでPythonのGUIライブラリが使用可能なDockerをDockerfileにしてみた にてDocker Container内に構築したPythonとGUIライブラリを、Jupyterlabを介して稼働させる方法を模索してきました。 改めて、何をしたいか、何が必要か、をまとめ、こちらの環境もまとめてから、完成したDockerfileとDocker Composeを公開し、どのようにしたかを解説していきます。 目次 開発環境 したいこと 階層構造 Dockerfileの解説 Docker Composeの解説 今後の課題 参考サイト 開発環境 環境は、 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 仮想環境:Docker Desktop エディタ:JupyterLab、Sublime Text 上記に追加で、 予めXquartzの導入と設定が必要 になります。 導入および設定の方法は、拙ブログの『 1 MacにXQuartzをインストール 』および『 2 XQuartzの環境設定を開く 』をご覧ください。 したいこと PythonをDockerで動かしたい Pythonは同じくDockerに導入したJupyterlabで編集したい PythonのGUIライブラリもJupyterlabで編集したい PythonのGUIライブラリの結果はMacのデスクトップ上