• ベストアンサー

エクセルファイルの動作を軽くしたい。

keithinの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>セルの参照方法によって動作に影響するのでしょうか? いいえ。そういう事はありません。 >列を参照するとき(A1:A:2000)を(A:A)とするといかがでしょうか 実際に使用している関数によります。ただしごく一般論で言えば、関数に与える計算対象セル範囲は、手抜きをして無駄に広げると僅かながらでも遅くなる原因にはなります。 ただし一方でシートをきれいに使えてない場合、つまり一例を挙げるならCtrl+Endキーを押したときにシートの最後のセルにジャンプしますが、実際に確認してみると「意識して使ってる表範囲よりもずーっと下の行のセルまで飛んでってしまった」みたいな状況では、セル範囲の与え方によって明らかに応答が違ってくる場合もあります。 >たとえばCOUNTIF関数で済む計算をCOUNTIFS関数で行うと動作が重くなる。 2番目のご質問と同じで、実際に使用している関数によって動作が重くなります。 ここでようやっと「あなたの具体的な数式」の断片が出てきましたが、COUNTIF関数は元々遅い部類の関数で、しかも無駄に大きな範囲を与えたり、無駄にたくさんのセルに放り込んでおいたりすると、増々遅くなる関数の一つです。 またCOUNTIFSも同様ですが、もっともCOUNTIFSを「使いたい(適切な)状況」においてSUMPRODUCTとか使ってるのに比べたらそれでも遥かに高速です。 >何とか軽くしたい 試しにどっかの1列の数式を上から下まで丸ごと消して、それでシートが軽くなったら「その列で使ってた計算式」が原因だとはっきり判りますね。 その数式の具体的な内容をあなたの実際のエクセルからキチンとコピーして別のご相談としてしっかり丁寧に説明して、具体的にどういう数式(この場合は計算のやり方)に直せばもっとサクサク動くようになるのか、新しいご質問として投稿し直してみて下さい。

genta1019boston
質問者

お礼

ありがとうござます。

関連するQ&A

  • MACのエクセル2011について

    MACのエクセル(2011)にて 5000行 x 20列 程度のデータをcountifsなどの関数で参照させると 正確にデータが取得されず、関数のセル、もしくは参照元データのセルを一度 編集状態にして何も変更せずにエンターを押すと 正しい値が算出されるような動作が散見されます。 これはなぜでしょうか。 また、現状ではきちんと関数が動作しているか信用できないため シート内の全てセルに対して同様の動作(無編集→エンター)をさせることは可能でしょうか?

  • エクセル関数countifの初歩的な使い方(範囲)のことで教えてください

    表に書かれたデータ数を数えるときに使う関数countifで、検索範囲を自由に変更して集計できるようにしたいので、その方法を教えてください。例えば10行5列の表の各セルにa~zのどれかが入っていて、1~5列まで集計した表を作りました。次の6~10行までまで、その次には1~10行までというように、行の検索範囲を自由にしたいのです。自分で作った集計表では、すべての関す運式の範囲をいちいち変更しなければならないの面倒です。マクロを組まなくては無理ですか。

  • COUNTIFで特定の文字列を含む値のカウント方法

    Excel2010を使っている者です。 COUNTIF関数で特定の文字列を含むセルの数をカウントしたいのですが、結果がゼロになってしまいます。 具体的には A列の1行目から900行目までに以下のように番号が振ってあって、その中で1994を含むセルの数を数えようと思っています。 計算式として「=COUNTIF($A$1:$A$900,"1994")」と入力したのですが、戻り値が0になってしまいます。 なお、A列は数値にしても文字列にしても結果は変わらず、「=COUNTIF($A$1:$A$900,"1994*")」とワイルドカードを使った検索にしても同じく0になってしまいます。 1994000001 1994000002 1994000005 ~ 2009111112 2009111117 もう一つ関連した質問をさせていただきますが、そもそもこの関数で特定の文字列を含む検索をかけたいときは、ワイルドカードの*を使わないとうまく計算できないものなのですか? よろしくお願いいたします。

  • エクセル 行も列もバラバラの入力されたセルを…。

    エクセルで質問です。 COUNTIF関数などで、縦列や行では簡単に数えることが、 出きると思います。 行も列もバラバラのセルで、入力されたセルを カウントする式はどう設定すればいいのでしょう? =COUNTIF((A11,A18,A25,A32,A39,A46,A53),">0") では、うまくいきませんでした。 セルを結合させたりしていますので、 セルを指定してカウントしたいのですが? 以上、よろしくお願いします。

  • COUNTIFを使って文字を抽出したい

      A 1 ビタミン   カルシウム 2 ビタミン 3 鉄 4 ビタミン 5 マグネシウム というようにA1のセルには二行にわたって文字が入力されています。 このA列で、「ビタミン」を含むセルはどのようにカウントするのですか? COUNTIFで「=COUNTIF(A1:A5,"ビタミン")」とすると、2 となってしまいます。この列に含まれるビタミンの数、つまり3と計算させる関数を教えてください。 よろしくお願いします。

  • エクセル countifs関数の記述法を教えて

    画像の一覧表から、A列に"○"が付いた行だけについて、75歳~79歳の男性の人数をカウントしたいのですが。 "○"を付けるする前の一覧表については、先の質問(No.8135362)で回答をいただき解決しました。    =COUNTIFS(C2:I6,">=70",C2:I6,"<80",D2:J6,"男") で5人となります。 このたび、A列に"○"を付けた行だけについてカウントする必要になり、次の式を立てましたが、#VALUEがでてしまい、どうにもなりません。    =COUNTIFS(A2:A6,"○",C2:I6,">=70",C2:I6,"<80",D2:J6,"男") countifs関数に、subtotal関数のような機能があればよいのですが、わかりません。 思いつくのは、フィルターをかけた後、その一覧表を、別シートにコピーペーストしてから、最初の式でカウントする方法しか思いあたらないのですが。 実際の表はもっとずっと大きいので、ひとつの関数式でできないものかと思っています。 よろしくお願いします。

  • Excelで1行目から52800行目のフィルドラッグを簡単にする方法

    A列1行目のセルにSUM関数が入っています。SUM関数をA列52800行までコピーするのに、フィルドラッグするしか方法を知りません。 昔、最初のセル(A列1行目)と最後のセル(A列52800行目)を選択して、キーボートとマウスを使うと一気にコピーできる方法を聞いたのですが…。忘れてしまいました。 何か簡単な方法はあるでしょうか?

  • エクセルでこのようなことはできますか?

    エクセル2010です。 たとえば図のように、各都市での新規店舗オープンの予定表があり、A店・B店・C店が、それぞれの都市でオープン予定となっているとします。 図では、B店が4都市全てでオープンしたため、右の別表に「○」がついています。 これを自動で「○」がつくようなシステムのシートを作りたいと思っています。 考えているのは、B店の場合だと、F3のセルに、 C列で「準備中」と書かれている行のうち、同じ行のB列のどこにもE3("B店"という文字列)が無ければ、"○"を表示する、 となるようにしたいのです。 こういう場合どのような関数を使えば良いのでしょうか?LOOKUP関数とCOUNTIF関数でいろいろやってみたのですがどうにもうまくいきません・・・ よろしければアドバイスをいただけますでしょうか。よろしくお願いします。

  • COUNTIF関数 離れたセルを選択したい

    A列に 10 10 11 11 12 12 がはいっていて、 1行目、3行目、5行目が10以上の数を数えたいのですが =COUNTIF(A1,A3,A5,">10") のように離れたセルを選択することは出来ないのでしょうか? エラーになるようです。 COUNTIF関数じゃなければ可能ですか?

  • EXCEL 番号をふりたい

    A列に件名が並んでいる表があります。 何回も同じ件名が現れるため、区別するための番号をB列に振りたいと思います。 COUNTIF($A$2:A100,A100)という関数で番号をつけられると思ったのですが、 この表は、新しいデータが必ず最後の行に書かれるわけではなく、途中に挿入される可能性があることがわかり、この方法は採れないことがわかりました。 何かいい方法がありませんでしょうか? よろしくお願いします。