♯untitled_note

私的な考えとかメモ、その他トラブルシュート

オートフィルター絞込時、行・列のサイズ変更時に待ち時間を短くする地味に便利なTips

意外と知られていないのか、意識していない人が多いようなので書いて見ます。

Excel表計算ソフトのくせに、大きな表を作ると、
オートフィルター時にやたら時間がかかったり
行・列の高さ・幅を調整するときにやたら時間を取られて
挙句の果てに「応答なし」になる時がありますよね?ハイ、あります。

実はコレ、ほとんどセルサイズの再描画にかかる時間のようです。

解決策

データの入っている全てのセルを指定して、「折り返して全体を表示」を解除してください。

本当にセル全部を選択すると、全然関係ない大量の空白行にまで処理を行うので、解除自体の処理が遅くなってしまうので、データが入っている行か列を選択してください。

例えば、1〜10000行目までデータが入ってたとすれば、
1〜10000行目だけを行選択してください。*1


詳細手順その1
簡単な方法です。
  1. 上記の方法でセルを選択
  2. 右クリックして[セルの書式設定]から[配置]タブを選択。
  3. [折り返して全体を表示する]のチェックを外してOKを押す。
この方法だと、確かほぼ一瞬で折り返し表示が解除されて各セルの内容が1行で表示されたと思います。
折り返し表示設定が設定されているセルと、されていないセルが大量に入り乱れている場合
たまに解除自体に時間がかかったりしますが、それでも「応答無し」になるレベルではないのでマシです。


詳細手順その2
私はいつもこちらの方法で解除しています。
理由は、右クリック→[セルの書式設定]を呼び出す事自体に時間がかかるためです。
  1. 上記の方法でセルを選択
  2. リボンメニューまたはツールバーから[折り返して全体を表示する]設定ボタンを押す。
  3. 処理に時間がかかるようなら、ESCキーを押して処理を中止。*2
  4. 再度[折り返して全体を表示する]ボタンを押す。
  5. 処理が一瞬で終われば、セルが解除されている。終わらなければ2つ前の手順(ESCキー押し)に戻る。
です。

何をしているのかというと、Excelが「今どういう処理をしようとしているか」を無視して、セルが解除されるまで[折り返して全体を表示する]を押しているだけです。
折り返し設定処理と、折り返し解除処理なら、解除処理のほうが断然早いので、処理が早く終われば折り返しが解除されたものとみなし、時間がかかってるなら設定しようとしているものと見なしてESCで処理をキャンセルしているというわけです

それでも、場合によってはどうしても解除に時間がかかるパターンもあるので、その場合は大人しく待ちます。*3

こういう時に使える

データの閲覧目的のみや、個人的にしか使わない(見た目を気にしない)時などに非常に便利です。

勘の良い人はお気づきかも知れませんが、画像やオブジェクトが無い、数式もガチガチに使っているわけではない純粋な表形式のExcelファイルなのに、ファイルを開くのが遅い場合は、折り返し表示が有効になっているために行・列のサイズ変更と、その再描画で遅くなっている事が殆どです。

実際に、折り返し表示ONとOFFのファイルで開く速度を比較すると、驚くほど違います。
特にピボットテーブルの元データとして莫大な量のデータを扱う場合には必ず折り返し表示は解除することをおすすめします。(ピボットを見るのでデータ側を見る必要ありませんし)

個人的によく使うシーン

僕個人でよく使うのは、CSVデータを開いた時と、そのデータを自分用の加工/編集データとして持っておきたい時によく使います。

CSVデータは書式の概念が無いので、ありがた迷惑なExcelの仕様上デフォルトで全て折り返し表示が掛かっています。
このためファイルを開くときにやたらと待たされます。コレはもうどうしようもありません。
そして開いた後、そのまま行の高さを見やすくしようとしたり、オートフィルターをそのままかけようとすると、かなり待たされてイライラする事になります。

なので、開いたらまず全データの折り返し表示を解除してからやることで、処理が快適になります。
また個人的な編集データとして保存しておく場合は、見た目なんてどうでもいいので、絶対に折り返し表示をONにせずにxls(x)で保存するようにしています。

CSVデータを最初に開く時だけ時間がかかるのは我慢して、次から開く時には折り返し表示の解除された軽快なxls(x)を使いましょうということです。

*1:別に65536行目や1048576行目まで選択したって構いませんがやっぱり遅いです

*2:折り返し表示が設定されていないセルに対して、折り返し表示を設定しようとしているのを中止している

*3:あまり遭遇したことないですが

行、列のグループ化時に「+」「-」ボタンがおかしくなる件の1つの原因と復旧方法

2016/03/17:タイトル修正

なにそれ

これのこと。

行や列のグループ化を行った時に本来ボタンに表示されるはずの「+」や「-」が「」になって
ボタンが小さく表示される現象のこと。

Excelを方眼紙のように使いこなす諸君らには常識かもしれないのだが、僕は知らなかったので書いておく。

#調べたらExcelファイルを作り直せとかいうあまりにも乱暴な回答しか転がって無かった。
#いや、本当はもっと調べればキチンと載ってるのかもしれないのだが、
#そもそも調べ方のキーワードになんと書けばいいのかすらわからなかった・・・。

発生するExcelのバージョン

多分最近の全部のバージョン。
発生したことがある(覚えてる)のは、Excel2003、2007、2010。
直したことがあるのは、2007と2010のみ。

1つの原因

1つと書いたのは、たまたま見つけたからで、本当はまだあるかも知れない為だ。
しかし原因は非常に単純。

どこか大量の行(列)が小さな高さ(幅)に設定されていないか。
を調べてみて欲しい。
よくあるのが、下〜〜〜〜の方に、例えば1万行目から下が知らぬ間に小さくなってた。とか。

具体的にはこういうことだ。

この画像はわかりやすいように、6行目から下の行全部を小さくした例だが、
実際にはどこの列からだろうがとにかく大量に小さな高さに設定されていると起こる。

もう少し詳しく書くと、実はこのグループ化ボタン、行の高さに比例して小さくなる。

グループ化対象の行の高さを小さくすれば、小さくなるのは当たり前だが、
どういうわけか、グループ化されている行とは関係無いのに、他の行を小さくすると
それに比例して行グループ、列グループの両方のボタンが小さくなっていくみたいだ。

復旧方法

小さくなっている行をデフォルトの大きさに戻すだけ。
大抵の場合それだけで直ります。

しかし、行も列も小さくしまくってたりすると、これだけでは直らない時があります。
そういう時は、小さくしていた行(列)をデフォルトよりも大きく設定してください。
そうするとボタンが元の大きさに戻って、再度デフォルトの高さ(幅)に戻せば直ります。
#どちらかというと列よりも行のほうが大きい影響を与えるみたいなので、
#両方大きくしても完全にボタンが戻りきらなかったら、行の高さをもっと大きくすることで改善することがあります。

艦これ+AviraAntivirusProを共存させる

追記(2015/02/07)

艦これ側にアプデがあったので状況整理。
  • Windows8 64bit:暴走はないがFlashが起動してこない、ロード中に止まる等の現象を確認。
    回避にはReal-Time ProtectionとWeb Protectionを一時的に無効化してからWebページを表示し、START GAMEを押して母港を表示するところまでいってから
    無効化してReal-time protectionとWeb protectionを有効化する。
    ロード終わった直後に有効化すると猫エラーが出る。
  • Windows7 64bit:特に何もせずとも起動可能。暴走も無し。

始まり

艦これ界隈で一時期AviraAntivirusを使っていると艦これ起動出来ないし、
PCに高負荷がかかるぞ。という問題が持ち上がっていた。

詳細:艦これ速報 艦隊これくしょんまとめ : 【艦これ+一般】アンチウィルスソフトAviraで艦これが重くなりログイン画面から進めなくなる不具合発生中?

Aviraを使わなければ済む話なのだが、僕はAviraが好きだったし、
僕はAviraAntivirusProライセンス購入してしまったユーザだ。

しかし金払ってこれはムカつくのでAviraに報告して修正させてやらねば。

そう思って昨年12月の発生から今日までAviraのサポートとずっとやりとりをしていた。

解決策

実は既に解決策を探り当てている人がいた。

艦これ AviraによるPC負荷を回避する | COCCIO
この方法もおそらく正解なのだが、一応サポートとのやりとりでわかった内容を記載しておく。

前提条件
  1. Antivirusを開いて、左側のメニューから[Real-Time Protection]をクリック
  2. 右上の[構成]をクリック
  3. Real-Time Protection - スキャン のツリー階層の[例外]をクリック
  4. Real-Time Protectionのスキャン対象から除外するプロセスに使用しているブラウザのexeを指定して追加する。
  5. [OK]ボタンを押して、ブラウザを起動中ならブラウザを再起動する。
設定例
ブラウザ 追加するexeファイル名 備考
Firefox インストール先\firefox.exe Portableの場合、FirefoxPortable.exeがあるがこれではない
InternetExplorer C:\Program Files\Internet Explorer\iexplorer.exe 64bit版も同じ
GoogleChrome C:\Program Files\Google\Chrome\Application\chrome.exe -

ここまでが大前提の設定。
FlashPlayerが悪いのでは?と思っていたが別にFlashPlayerPluginなどを追加しなくても良い。
この操作によりAntivirus Host Framework Serveのプロセス暴走を回避できる。

回避手順(Proユーザのみ)

AntiviruProにはWebProtectionがデフォで有効になっており、
こいつがゲーム起動(と言うよりゲームキャッシュのDL)を邪魔しているようなので、
一時的に無効にしてやる必要がある。

無効にせずに前提条件の設定をしただけでは、艦これを起動するとプロセスが暴走したり
プカプカ丸を表示したままゲームロード画面が出てこなかったりする。
Free版を利用しているユーザはWebProtectionが無いので、おそらくこの問題は発生しないと思う。

  1. Antivirus Proを開き、画面左の[状況]から[WebProtection]を無効化する。
  2. 艦これを起動する
  3. 正常に起動できることを確認したら[WebProtection]を有効化する。
これで以降のゲーム起動は何の問題もなく起動できるようになる。
一度ゲーム起動中にキャッシュが壊れたっぽいことがあり、上記の設定をしていたにも関わらず
プロセス暴走が発生したことがあったが、この時も同様にWebProtectionを無効化してから
ゲームを起動することにより現象を回避できた。
(アプデが入っても同じことになりそうだが…)

現象について

最後に本現象を詳しく記載しておく。
現象を知れば自ずと何をすれば良いかもわかってくるものだ。

現象は主に2つに分かれている。大抵の場合、両方一緒に起きているので見分けが付かないが切り分けていくと実はそうらしい。
  1. Antivirus Host Framework Serviceが暴走し、CPUに高負荷がかかる。
    一度再現するとPCを再起動するまで現象が継続する。
  2. プカプカ丸を表示したまま艦これのロード画面に遷移しない。

発生環境
Windows7 64bitでは現象2のみを確認
Windows8 64bitでは現象1、2の療法を確認した
ブラウザはOSに関わらず、Firefox 35.0、Chrome 39.0.2171.99m、InternetExplorer11の全てで発生した。

なおWindows7に限っては何故かプロセス暴走していないように見える*1が、
実際にはReal-Time Protectionの除外設定有りと無しでは、ゲーム起動までにかかる時間が
除外無し状態のほうが長い為、やはり何か悪さしていると考えられる。
まとめると、
  • 1の現象を回避するには、Real-Time Protectionからブラウザを除外プロセスに追加することが有効
  • 2の現象を回避するには、一度WebProtectionを回避してゲームキャッシュをロードする必要がある。
  • 正常起動後はWebProtectionを有効化しても問題ない。
  • 一度上記で回避出来たとしても、艦これのゲームキャッシュが壊れると再度同じ操作をする必要がある。

重要なのは、よく艦これ公式が「ブラウザのキャッシュを削除してください」と言っているが
キャッシュの削除後に起動するだけでは、Proユーザーは回避できないということだ。

おまけ

今回のやりとりでAvira(正確には日本ユーザ向けサポート委託先?)といろいろやりとりしたのだが、
最終的な結論が
「艦これのキャッシュに依存する問題であるため、艦これサポートに連絡してください」
というものだった。

実際にキャッシュ側の問題であることが回避方法からもわかるのだけれど、
それが原因でAviraのプロセスが暴走するわけだし、復帰させる為にPCを再起動せざるを得ないという
現象を放置(ユーザ任せ)するというのはどうなのよ。という感じがする。

また、艦これサポートに言え、というユーザに託す形も個人的に納得出来ない。*2
お前ら(艦これ)のせいでうち(Avira)の製品が疑われてるんだから、
Avira側から艦これ側に解析結果と一緒にこういう情報がユーザーから上がってるから対処してね。
というのが筋ではないだろうか。

でなければ、また僕は艦これサポートと最初から同じ説明を繰り返す事になる。
この現象についてAviraサポートとのやりとり、こちら側での検証に使った時間も短くはないのだ。

Aivraのサポートは丁寧だけど、本社のその姿勢はどうなのよ。という感じだった。*3
まあ外資なんてどこもそんなものだろうと思うのだが、
そういうわけで、ライセンス期限が切れたらまた違うアンチウィルスソフトを探そうと思う。

*1:CPU稼働率が上昇しない

*2:たらい回しみたいなもんだ

*3:彼らは本社からの回答を伝えているだけに過ぎないはずなので