【phpSpreadsheet】PHPでExcelを読み込んだらグラフが消える

phpSpreadsheetを長らく使っていますが、
あるとき「読み込んだExcelのグラフをそのまま出力したい」
という要望がありました。

何も考えずにグラフも読み込めるだろうと
過去のシステムからphpSpreadsheet使用部分をコピペして持ってきたところ、
出力したExcelはグラフだけ消えてしまいました。

知っている人にとってはなんということはないのですが、
グラフ付きのExcelを読み込むときは、Readerに対して

という設定が必要だとわかりました。

また、出力時も同様に、Writerに対して

が必要でした。

この歳になってまたひとつ勉強になりました。

例)

【Excel】UTF-8のCSVをExcelで開くには

UTF-8のCSVファイルをExcelで開くと、そのままだと文字化けしてしまいますが
「BOMつき」で保存することでExcelで開くことができるようになります。

BOMというのは、簡単に言うと
「これはUnicodeですよ」という意味のコードなのですが、
これを各行の先頭に入れることをBOMつきといいます。
BOMつきにすることでExcelもUTF-8のファイルであることが認識され、
文字化けせずに開けるようになります。

BOMつきにする簡単な方法は
Windowsのメモ帳で保存することです。
Windowsのメモ帳でUTF-8のファイルを保存すると自動的にBOMつきになります。
その他、テキストエディタなどのツールでもBOMつきで保存する機能があると思います。

ただし、BOMつきにしたCSVファイルを再びシステムに読み込ませたりする場合は注意が必要です。
BOMのせいでCSVファイルが正常にロードできなくなる危険があります。
ですので、システムに読み込ませる場合は、BOMつきのファイルは別ファイルとして保存しておいたほうがよいでしょう。

【Excel】基準となる列を指定して行全体を並び替える

Excelのちょっとした操作も数ヶ月~1年単位で使っていなかったりすると
やり方を忘れていたりしますよね。

選択した範囲に対して、日付の列の古い順に行全体を並べ替えたいときがあり、
何度かやっているはずなのに
「あれ、どうやるんだっけ?」
となってしまいました。

やり方は、まず並べ替えたい範囲を行単位で選択して、
メニューの「ホーム」にある

を押して、その中の

をクリックすると並べ替え用のウィンドウが出てきます。
私はここまでやって思い出しました。

あとは、

に並べ替えの基準となる列を指定して、

に並べ替えのルールを指定するだけです。

【Excel】前の操作を繰り返すショートカット

Excelで色を変えたり書式を変えたりしたときに、
他のセルにも同じ操作を繰り返したいときがよくありますよね。

そんなときは、セル選択後に「F4」キーで前の操作を繰り返すことができます。

これ、かなり昔から使っていますが、最近はちょっと使わないと
「あれ、Fなんだっけ?」

そろそろ脳がヤバいかもしれません。

【Excel】VLOOKUP関数とIFERROR関数で検索する

VLOOKUP関数は他の表を検索して値を入れてくれるという非常に便利な関数ですが、
久しぶりに使おうとしたときに、書式を覚えていたことはまずありません。

検索キー:コードなどの検索キーがはいります。
検索範囲:検索される表を指定します。キーと値を含んでいる必要があり、またキーの列が1列目である必要があります。
値の列番号:上で指定した検索範囲の中で、値が何列目にあるかを指定します。(左から1列目、2列目、、)
検索方法:TRUEかFALSEで指定します。TRUEの場合は一致しなくても一番近い値が入ります。

VLOOKUP関数の例

しかし、これだけだとキーが検索対象になかった場合に
「#N/A」というエラー表示になってしまいます。

そこで、IFERROR関数を使います。

エラーのときは空欄になるようにした例です。

エラー時は空欄にする例