1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Excelで常に有効数字2桁を表示する

Last updated at Posted at 2019-05-28

実は有効数字ってお仕事で使ったこと無かったりします。
掲示板の話題から思ったことをつらつらと書いてみます。

元ネタの質問

「有効数字2桁で表示(3桁目は切り捨て)」
http://www.excel.studio-kazu.jp/kw/20190526122601.html

質問の内容がとりとめないためか、回答が乱れまくっていますがそれはそれ。
まとめてみます。

質問内容

  • 有効数字2桁まで表示したい
  • 3桁目は切り捨てしたい
  • 2桁目が0の場合は0を表示したい

例)

  • 999 → 990
  • 12345 → 12000
  • 1.5678 → 1.5
  • 1.0012 → 1.0
  • 0.010012 → 0.010

2桁目が0の場合に0を表示するというのがExcelとしては相性が悪そうです。
1.0とかは勝手に1になってしまいますからね。
書式設定をするにも、例の4番めは「0.0」として、5番目は「0.000」と、有効桁数によって変わってしまう。
文字列が無難でしょうか。

あと3桁目を「切り捨てたい」という要望なので、指数を使いづらいという問題もあります。
指数は四捨五入してしまうので、それがまた回答者たちを混乱させているようにも見えます。

式を2つに分けよう

だいたいこういうときに活躍するのがLOG関数です。
今回の場合は、LOGの値が1以上か1以下かで式を別にしたほうがいいと思いました。
1の場合?どっち使ってもいいんじゃないですかね(適当)
なんとなくですが、実際のところ大きい数字か小さい数字か、どちらかしか使わないと思うんですよね。

LOGが1以上の場合

こっちは上2桁だけとって他の桁を0にすればいいので、こんな感じでしょうか

=LEFT(A1,2)*10^(INT(LOG(A1))-1)
  • 999 → 99 * 10 = 990
  • 12345 → 12 * 1000 = 12000

LOGが1以下の場合

こっちは有効数字を2桁までLEFTで引っ張ればいいだけですね

=LEFT(A1,3-INT(LOG(A1)))
  • 1.5678 → 3文字 → 1.5
  • 1.0012 → 3文字 → 1.0
  • 0.010012 → 5文字 → 0.010

欠点として、LEFTでくり抜いているだけなので、「6」とかだと当然「6」になり「6.0」にはならない。
蛇足だとは思うけど、それが嫌な場合は最初にTEXTで0をいっぱいつけておくといいかも。

=LEFT(TEXT(A1,"000000000000000000"),3-INT(LOG(A1)))

なんかEXCELの機能にあっても良さそうなのになぁと思うお話でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?