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

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

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

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