LibreOfficeのピボットでハマる

ハマリどころ

・ピボットテーブルは文字列の大文字小文字を判別しない。

元データはこれ。

ID 課金額
aaaa 100
aaaa 200
AAAA 100
bbbb 200

このデータを元にピボットテーブル作った時、

ID 課金額
aaaa 300
AAAA 100
bbbb 200

を想定していたのですが、作られたのは

ID 課金額
aaaa 400
bbbb 200

というテーブル。
実際のデータは50万件とかで、目視で確認するのはもはや難しい…というところでふと天啓が降りてきて数日間の戦いに終止符を打ちました…。

確かExcelは重複排除を行うと大文字小文字判別を行わずに削除するのでこれもハマリどころ。

好きなものを見つけてそれを馴染ませる

好きなものをみつけよう

開発するなら自分の手に馴染んだもの、お気に入りのものを使おう。
開発者が使用するアプリは多岐にわたる。

OS、ブラウザ、エディタ、ターミナル、IDE、開発言語……

それこそ分野によってもいろいろあるだろう。
何を選ぶにしても試すことを躊躇ってはいけない。

試して試して試す

例えば、エディタ。

自分は専門学校の頃にエディタというものを知ってからというもの、常に自分に馴染むものを探し求めていた。
そこから10年くらいメインでEmEditorを使用していた。

しかし、ある日出会ってしまった、Sublime Textに。
Sublime Textのデザインといい動作といい、それは本当に一目で恋に落ちたと言ってもいい程の速度で10年使ったEmEditorを過去のものへと変えた。

実は10年間ただEmEditorを使い続けていたわけじゃない。
その間も暇を見つけて、そして新しいアプリが公開されればそのエディタを使っていた。もちろん有名どころな秀丸、Notepad++、さくらエディタ、最近だとAtom、VS Codeあたりも試したけど自分にフィットするものは他に無かった。

何がフィットする?

これは個人によって何が自分の優先度にくるのかでいい。
UIデザイン?
使い勝手?
軽さ?
自分が気に入ったものを使えばいいんだ。

自分がPythonを使いたい理由なんて”The Zen of Python”の思考が自分の性に合ってる。名前の響きがいい。
そんなもんだ。
だいたい他の開発者にこう言うと呆れられる。「ああ、この人ロジカルじゃない。メリットとか考えないんだ」って。

でも、メリットがあるなら自分が扱いづらい言語を使いたいか?
やだやだ。
使いたくない。
仕事ならそこは譲るしかない。けど、そこに縛られる必要がないなら別に好きなものを好きなように使えばいいじゃん。

そして気に入ったらとことん使う

とことんカスタマイズする。キーボードショートカット、テーマ、フォント……。
片っ端から自分が好きなように変えていこう。

膨大な時間がかかる?
いいじゃない。
一生使っていくかもしれないものを自分に馴染ませないでどうする?
そこを惜しんでどうするんだ?

気に入ったものを使えば、何もかもが楽しくなってくる。
手に馴染ませれば、思考が何にも邪魔されずに画面上で動き始める。

気に入ったものを使うってのは最高だ

そこにかけた労力も時間も全てが自分にそれ以上のものを返してくれる。
その瞬間はいつだって最高に楽しく開発してるはずだ。

でも、馴染みすぎてて”邪魔されてない”なんてことには気づかないと思うけどね。

ST3 日本語環境向けプラグイン ConvertFullHalfWidth の解説

ConvertFullHalfWidth とは?

Sublime Text 3 向けのカタカナ・アルファベット・数字を全角半角文字に変換するプラグインです。
github:SublimeConvertFullHalfWidth
※ 以前はConvertZenHanという名称で公開していましたが、同じような名前のプラグインがすでに公開されていたので変更しました。

なお、変換にはPyPIで公開されている jaconv を使用しています。

どうやってるの?

選択文字列とどの文字を変換対象にするかのフラグをプラグインのコマンドに渡し、フラグに従ってjacnonvに文字列を渡すだけ!

今後の追加予定

jaconvにはひらがな→カタカナ、カタカナ→ひらがなの変換もあるのでこの変換も出来るように実装予定。

/** 「もう仕事としてはガラケー特化のサイトなんて作らないよねー」っと思ってたらドンピシャでスマホサイトをガラケー向けに作り変えるお仕事来てプラグイン大勝利で震えたのはいい思い出。 */

以上。

ST3 日本語環境向けプラグイン MultibyteWordSeparators の解説

MultibyteWordSeparators とは?

Sublime Text 3 向けのマルチバイト文字列に対応した単語移動をサポートするパッケージです。
github:SublimeMultibyteWordSeparators
※ 5/1現在Package Controlに登録申請中のため、インストールは手動になります。
※ 5/4にPackage Controlに取り込まれました。

日本語に対応しているエディタの場合、単語移動でカーソル移動すると漢字・ひらがな・カタカナ・英数字を判別し、単語らしきところでカーソルが止まるようになっています。

Sublime Text 3 は、日本語を単語移動しようとすると2byte文字列が判別できず、一つの単語として移動してしまいます。

そこで単語移動出来るように MultibyteWordSeparators を作成しました。

どうやってるの?

漢字・ひらがな・カタカナ・英語・数字・記号のグループを作成し、片っ端から正規表現で引っかけています。

次に、カーソルの位置が漢字であればそれを主とし、主となる文字種から変わるまでカーソルを移動させ続けます。

例えば、ひらがなと同じリストに数字を入れればひらがなと同じ種別と判別され、移動もひらがなと数字は一緒に移動されます。

つまり、厳密には”単語”移動ではないです。

形態素解析は使わなかったの?

そういうわけで、形態素解析は使っていません。
実際のところ、開発時に形態素解析が手軽に使えることを知らなかった、という理由もあったり無かった……。

ちょっと形態素解析の場合について考えてみたけど、現在のカーソル位置から前後の文章をある程度チェックする手間、カーソル位置がその文書のどこに当たるのかをそれぞれチェックする必要がありそうで、逆に手間かも……。

個人的には現在のやり方がベターな気がしてます。

日本語の単語移動の件は困ってる方も結構いるようだったので、このプラグインが一助になればいいなと思いを込めての宣伝でした。

アップデート履歴

7/24 ver1.2.2 へアップデート

よく使う日本語記号(←↑→↓■□▲△▼▽◆◇○◎●★☆)をcjkSymbolへ追加

5/24 ver1.2.0 へアップデート

文字列の検索指定をsubliem-settingsへ移行。このため、ユーザーが任意の文字列で指定できるようになりました。

5/9 ver1.1.0 へアップデート

マウスでのダブルクリックでの単語選択に対応
マウスでダブルクリックを行った際、マウスカーソルの下にある文字を検出して単語を選択する機能を追加

以上。