C# + EPPlus でグラフ付きExcelファイルを生成するということをやってます。出力にはここ にあるようなデータ数量の変化にも自動で追従する度数分布(Frequency/Histogramとも言う)グラフが含まれています。
が、できたファイルをExcel 2013で開く時は問題ないのに、よく分からないタイミングでグラフ上の線が突如消えたり、「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。」で始まるエラーメッセージが(英語版なのでWe found a problem with one or more formula references in this worksheet)。最初EPPlusで作ったせいかと思ったのですが、一度はExcelで開いたのだから原因はそこじゃないだろうと。
通常はセルの移動や削除で#REFが出てしまったのが原因で、エラーメッセージで検索すれば対処 がいろいろ見つかるのですが、今回の場合は#REFなどない。
次に調べるところとしては、グラフ。参照範囲(X/Y軸、タイトルなど)に数式で指定していると数式がエラーを出しているので発見が難しくなるらしい。表示の崩れたグラフを右クリック、データ範囲をしらみつぶしに調べたところ、ある名前付き範囲に設定した数式が
開いた直後 =OFFSET('Data'!GC12,2,4,COUNT('Data'!GG14:GG63),1) エラー後 =OFFSET('Data'!GM24,2,4,COUNT('Data'!GQ26:GQ75),1)
…なぜセルのアドレスが変わってるかな?
エラー後が示しているGM24やGQ26は#NA!で埋まっており、こんなのをFREQUENCY関数の引数に与えたらそりゃエラーだろうな。
セルの指定を$GC$12というように固定形式にするとこのような変化は抑制できるようです。そういえばここ も固定形式で指定してるな。これって公然の仕様なのでしょうか?
[参考]
Comments