• ベストアンサー

EXCEL2

B1には2.156という数字が入っており、 C2にはROUND(B2,0) C3にはROUNDUP(B2,0) C4にはROUNDDOWN(B2,0) C5にはINT(B2) C6にはTRUNC(B2,0) が入っています。 B1の2.156をB2に切取/貼付した場合、エラー=ROUND(#REF!)が表示されてしまいますが、 コピー&ペーストだとうまくいくのはどういった理由からなのでしょうか?

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

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

面白いことに気がつきましたね^^; 質問文の状態ではB1に2156が入っていますが、B2にもすでに値が入っているとします。またB3が空のセルだとします。 ためしにB2をB3にコピー&ペーストすると、C2はROUND(B2,0)のままです。 でも、B2をB3にカット&ペーストすると、C2はROUND(B3,0)に変更されます。 このことからエクセルの内部では、コピー時はコピー先に数字データを上書きする処理だけなのに対して、カット時は各セルにある参照先を移動させる処理もしているというわけです。 (これを専門的には参照といいます。原理としては同じようなものにポインタというものもあります) そのためコピー&ペーストでは数字が変わるだけで数式には問題が起きませんが、カット&ペーストをB1からB2にしてしまうと、各セルのB1を参照していた部分がB2に変わり、B2を参照していた部分はその参照先が消滅してしまったためにエラーとなってしまうのです。 普通にパソコンを使う分には気にする必要ありませんが、エクセルの表計算やソフトウェアの開発などではこの参照の問題には頭を悩ませてしまいます。「ポインタ」という言葉にトラウマをもっているIT技術者もよく見かけます。。。 よく分からなかったかと思いますが、ふうんと思っていただければと思います。 http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7_%28%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6%29

参考URL:
http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7_%28%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6%29
kwkwyy
質問者

お礼

難しいですね! 私にはちょっと専門的過ぎです(笑) でも、上記の事を少し頭に入れておいて、 『コピペだとうまくいくんだ』と覚えておけば仕事には差し支えないですよね! 詳しい回答ありがとうございました。

関連するQ&A