• ベストアンサー

excelのファイルサイズ どっちが大きくなる?

以前出勤簿を作っていたときにふと思ったのですが、if関数をネストした場合と作業セルを作った場合とでは、どちらがファイルサイズが大きくなるのでしょうか? excelのバージョンは2002だったのでネスト数は7でしたが、実際7つも条件を組み込むと後で見た時に分かりづらくて、結局は4つ以上の条件が重なるときは作業セルを作っていました。 つまりこのときの出勤簿は1つのセルで回答が出るものと複数セルにまたがるものとが混在していて、やっぱり分かりづらいものでした^_^; で本題ですが、きっちり上限7つまでのネストをして使用するセル数を減らしたほうが、やはりファイルサイズは小さくてすんだのでしょうか? ご存知の方いらしたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

内部書式までは知らないので想像での回答ですが・・・ セルを使用すると、その値(または式)だけでなく、そのセルの書式や罫線などの情報も(見た目は何も変えていなくても)全て記録されるはずです。一方、式が長くなっても容量の差は、式に要した文字数の差分だけということになりますので、ANo1様の回答通り作業列を利用した方が大きくなると思われます。 エクセルでは、隠れた情報までも蓄える性質があるため、ご質問の差以上に大きな影響を与える場合があります。 以前、少々複雑なものを作成するため、一つのファイルで実験しながら作成し、完成したものが(データ量はたいしてないのに)数メガになっていたことがあります。そこで、これとまったく同じ内容を、簡潔に作成し直してみると、なんと100k以下になりました。 操作でデリートなどを行うと、そのときの情報が蓄積していくらしいです。 ソフト自体にこのような容量増大機能(?)が備わっているので、ご質問のくらいの差はそれほど気になさらなくても宜しいかと思います。 対象セルが数千、数万になってくると無視できない差になる可能性はありますが、少ない場合は、むしろ、後々のことを考えて、わかりやすさや修正しやすさなどを優先させておくのが良いのではないでしょうか?

ricky223
質問者

お礼

ANo.1様、ANo.2様、まとめてお礼を書かせていただきます。 ファイルサイズはたいして変わらないのですね。しかし「隠れた情報を蓄える」とは驚きでした。消したいからDeleteするのに、それを覚えるとは…! 出勤簿はもう完成していて、重いという程でもないのですが軽いわけでもなかったので、次にまた何か作ることがあれば参考にしたいと思い質問いたしました。 回答者様お二人とも、後々の修正や引継ぎなどの事にも触れられていて、一つの仕事にはそういった配慮も必要なのだと思い至りました。 ためになるご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

多少は作業列の方が大きくなりそうですが?さほど違わないかも。 入力操作などの作業へ負担を気にされていると思いますが ファイルが大きいと 開く時 保存の時に 時間がかかる です。 入力など操作の時に遅くなる(再計算の時間がかかる) (再計算は関数の種類によって開くときに実行される関数もあります) 使用した関数の種類、式の書き方が大きく影響します。 作業列利用した方が早くなるケースもあります。 作業列使用することで、式がわかりやすくなりメンテナンスが楽です。 引継ぎも楽です。 現在のファイルサイズがどのくらいかわかりませんが、数百Kであれば 気にすることなしでしょう。 数十Mもあるとかでしたら ファイルサイズの中で式の部分がどのくらいあるのか試すのに 同じ式を別の列にコピィ(2つにして)別名で保存してみます。 それぞれのファイルサイズ確認します。 保存の時間の差は、ファイルサイズの違いです。 開く時の時間の差は、ファイルサイズと式の再計算の部分の違いです。 作業列使用した場合との違いではありません。 参考にするのであれが、全く意味のない =A1+B2 とか勝手な式を追加して保存してみるのも良いかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで範囲内の条件を満たす数値を返す関数を教えてください。

    エクセルで範囲内の条件を満たす数値を返す関数を教えてください。 100以下なら1111 100超~200以下なら2222 200超~300以下なら3333 300超~400以下なら4444 400超~500以下なら5555 500超~600以下なら6666 600超~700以下なら7777 700超~800以下なら8888 800超~900以下なら9999 900超なら10000 上記のような条件があり、入力した数字が該当する条件の範囲内に該当している数字を抽出したいのですが、それができる関数を教えてください。 例えばA1セルに650と入力するとB1セルに上記の条件で該当する7777を表示する、 A1セルに100と入力するとB1セルに1111、 901とA1に入力するとB1に10000と表示されるなどのようにしたいのです。 IFを使った関数では7つまでしかネストできないので、上記の場合10ネストしなければならないのでIF関数が使えません(使える方法があるかもしれませんが私は知りません)。 ネストせずに「&」を使う方法も考えたのですが、それだと数値として扱われず文字として扱われてしまい表示形式を自在に編集することができなくなってしまいます。 良い解決方法を教えてください。

  • エクセルでセルのフォントサイズを取得する関数?

    エクセル初心者です。 印刷したときにセル内の文字が全部印刷されるように、セルごとに文字数の上限をこえるとメッセージが出るようにしたいのですが。。 セルのフォントサイズを取得する関数ってあるのでしょうか? 

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • エクセル関数について 教えてください

    エクセルの関数で出来なくて困っております。 内容は B1セルに“1”と入れた場合B3セルに「C3」の値が入る B1セルに“2”と入れた場合B3セルに「D3」の値が入る … … B1セルに“12”と入れた場合B3セルに「N3」の値が入る という具合で12回したいのですが、 すでに「IF」ではネストで7回までというのがわかったところです。 サイトでネストの回避方法を検索したのですが、あてはまるものがなくて新規でご質問をいたします。 よろしくお願いいたします。

  • Excelで・・・

    あるセルの計算結果を参照してその数によってある数値か文字を表示する。 例: 計算結果が0~3だったらAと表示 計算結果が4~7だったらBと表示 以下同じように続く IF関数でやるとかなり長い式になるしネストする制限があるようなので 簡単に表示できる関数はありますか?

  • エクセル関数について

    現在エクセル関数を勉強しだしたところですが、 一つのセルに条件付の計算式をいれたい場合に どうすればよいか困っています。 たとえば、A,B,Cという数値が1行に並んでおり、 A、B、Cの数をカウントして、合計のセルに (Aの数×5)+(Bの数×4)+(Cの数×3) という答えを関数で出したい場合はどうすれば よいのでしょうか? 本やヘルプで調べてもいまいちわかりません。 IF関数を使う? 初心者なので詳しく教えていただけたらと 思います。

  • エクセルの関数を教えて下さい

    エクセルの関数が思いつかないのでどなたか教えて頂けませんでしょうか 書きたい関数は一つなんですけど、いくつかの条件があるんです。 1つめの条件 指示数がα セルA1からセルA5までの中に数字があればその合計数からαを引く 但し、表示させたい数字はα 数字を入れるとこんな感じになります 【指示数は20 セルA1からセルA5までの合計数は30 その場合表示させたいのは20】 2つめの条件 指示数は20 セルA1からセルA5までに数字がなければA6の数字からαを引く ただし表示させるのはα 【指示数は20 セルA1からセルA5までの合計数は0 セル6には30ある その場合表示させたいのは20】 3つめの条件 指示数はα セルA1からセルA5までの合計数がαより小さい場合にはセルA6の数字から残りの数を引く その場合表示させたいのは セル1からセル5の合計数からαを引いた数とその残りの数 【指示数は20 セルA1からセルA5の合計数は12 セルA6は20 その場合表示させたいのは 12と8】 4つめの条件 指示数はα セルA1からセルA5の合計数を足した数よりも、A6の数字よりもαが大きい その場合表示させたいのは セルA1からセルA5の合計数とA6の数からαを引いた数 【指示数は20 セルA1からセルA5までの合計が3 A6の数は6 その場合表示させたいのは11】 こんな4つの条件を兼ね揃えた関数なんてありますでしょうか? 1つの関数ではなく 条件1がダメなら条件2 条件2がダメなら条件3 という様に次々と計算していく様な連続した関数でも構いません。 分かりにくい表現だとは思いますが どなたか知恵を貸して頂けませんでしょうか 宜しくお願い致します。

  • エクセルのIF関数でネスト

    IF関数を使って、ひとつのセルに12回ネストを入れたいのですが、7回までしか出来ないとエラーが出てしまいます。方法は無いのでしょうか? 作っているのはローン表で、ローン回数に応じた金利が11種あります。回数が足りない場合とオーバーする場合いも入れたいのです。

  • Excel 長すぎるif関数

    こんにちは。Excelを使って、条件によって表す表示を変える場合、 例えばa1のセルには0~100までの任意の数字を入れるとして、b1のセルにa1の数字に応じていろいろな表示をしたい場合(具体的には100ならAを表示、90~99ならB、70~89ならC、55~69ならD・・・といったように)、if関数を使うと思いますが、 =if(a1=100,"A"1,if(a1>=90,"B",if(a1>=70,"C",if・・・・)))というように長々と続きますね。条件が少ないうちはいいのですが、条件が多くなると、大変複雑な式になり、入力もしづらいし、頭も使うし、閉じる括弧の数もわからなくなるし、作成に時間もかかりますよね。2つ以上の条件が重なる(例えばA1が90~99の範囲でかつa2がAならb1にB1と表示するなど)など複雑になってくるともうお手上げです。 これらを短時間で要領よく作成する方法はないでしょうか?次の観点で教えてください。 1 if以外の良い関数はあるか?または良い機能はあるか?それとも複雑であってもif関数が妥当なのか? 2 (if関数が妥当であるとして)複雑なif文の作成を簡単にできる方法があるか?あるいはそんなソフトがあるか? 3 やっぱりそういうのはVBAとかで作った方がいいのか?(できれば使いたくないのですが。)

  • 関数の中に関数を入れる事をネストを言うのでしょうか

    関数の中に関数を入れる事をネストを言うのでしょうか? ネストの意味がよくわからないので教えてください。 =IF(A1<>"",LEN(A1),"") のように、関数の中に関数を入れることをネストというのでしょうか? それはIF関数を使わない場合でもネストと言いますか? ネストをするときは、決まってIF関数を使いますか?

専門家に質問してみよう