ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

Excelのセル擬結合による、セル値損失の回避

 ソフトウェア開発者がExcelを嫌う理由は、たくさんあるでしょう。Excel大好きなぼくでも、おいフザケンナというExcelファイルはいくらでもあります。たとえば以下(あくまでも個人の嗜好です)。
  • セル内改行の方法を知らないので、空白で調整して擬似的に改行を実現!
  • タイトルを、最初の行の真ん中あたりのセルの中でセンタリングしているので、どのセルに値があるのかわからない!
  • 「プレビュー」すると、文字や罫線の切れっ端みたいのが大量に現れて、計46ページ!
  • A3

セル結合の悲哀

 さて、Excelの機能のうち、「便利だけどあまり使うべきじゃない」のが、「セルの結合」だと思います。Excelの他の機能を使うことだけ考えても、ソート/フィルタや値コピペと、セル結合の相性は最悪です。
 表計算ソフトであるExcelがもっとも活躍するのは、当然「表」です。作った表を加工・集計したりメンテを続けることが前提なら、各行は独立しているべきです。データベースのレコードのように、1行1行が独立していることによって、たとえばピボットテーブルでの集計・分析がマトモに動作します。
 一方セルの結合とはつまり、複数のセルの値を1つの値で代表することであり、行同士の独立が失われます。見せることだけが目的の表以外では、セル結合は避けるべき。

未承諾広告※

 ちなみに、ソフトウェア開発におけるExcelの使い方については、『エンジニアのためのExcel再入門講座』が面白い。「Excelはドキュメンテーションツールではない」「ドキュメントの品質にこだわるならExcelはやめよう」など、まさにそのとおりだと思います。
エンジニアのためのExcel再入門講座

エンジニアのためのExcel再入門講座

 

  Word版に比べてExcel版は「ん?そうか?」と思うところも実は多いのですが、Excelの表をリレーショナルデータベースに見立てての説明は秀逸だと思います。

エンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方

エンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方

 

 閑話休題

 セル結合ダメはわかったけど、じゃあこういう表ってどうするのよってことになります。
01_300e16f6
 「部」行の第3部第3部第3部・・・って、やっぱりうるさいですよね。なのでセル結合したくなるんですよね。
 でも、ここで考えないといけないことは、「値は保ちつつ、見た目だけ見やすくする」ということ。見た目のために値を犠牲にするのはダメなんです。

「テーブル」化する!

 この白い表を加工していきましょう。
 まず、表のエリアを選択したうえで、[ctrl]+[L]。これによって、この表は「テーブル」として扱われます。
 テーブルについてはコチラなどが詳しいですし、このエントリーの話には、実は本質的に関係ありませんので説明しません。ただテーブルにしておくとExcelの中で色々と扱いが楽(制約も多いが)なので、ぼくはすぐテーブルにしてしまいます。
 するとデフォルトでは多分、Powerpointでも出てくるような謎のしましまフォーマットになります。

02_910d11cd

 アメリカ人はこういうの好きなのか?ぼくは嫌いです。テーブルは自作のテーマを作れますので、夏らしくサワヤカな設定をします。ちなみにこの設定も、このエントリーの話にはまったく関係ありません

06_78ebbebf

 涼しげでいとおかしですね。でもここまでやっても、第3部第3部第3部・・・は変わらないわけです。ここからは、自称・Excel条件付き書式エヴァンジェリストの仕事です。

条件付き書式で偽装する!

 第3部第3部第3部・・・がうざったいなら、その列のセルに「上と同じ値なら、文字色を薄いグレーにする」と設定してあげればいいだけですね。

04_ca3340b1

 ついでに、罫線も消す。消すといってもこの場合、セル色と同じ「白」で上書きすることになります。

05_ba0c8ee2

 すると、こうなる。

06_78ebbebf

 まるでセル結合したようですね!これで、それぞれの行の値を損なうことなく、見た目も充実。カンペキです。

気にしてはいけない

 ちなみに、ここで「スタンド名=シルバー・チャリオッツ 」でフィルタしてみましょうか。

07_cf2bb70a

 ブラボー! おお・・・ブラボー!
 「部」列はもちろん、グレーのままですね。見づらい!まあこれはセル結合でも同じです。セル結合なんて、へたすりゃ値自体が非表示ですわ。セル結合に劣っていないならいいじゃないか!
 あと、もう1つ。行に色塗ったらこうなるよ。白い罫線が出ちゃってますけど、みなさんもちろん気にしませんね?

08_d503785c

 ということで、極めてニッチなテーマを書いてみました。明日もセル結合と戦ってきます。コチラもどうぞ。↓