[[20190526122601]] 『有効数字2桁で表示(3桁目は切り捨て)』(taki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『有効数字2桁で表示(3桁目は切り捨て)』(taki)

有効数字2桁で表示したいです。
(3桁目は切り捨て処理)

いろいろ試してみると、ROUNDDOWN(A1,1-INT(LOG(ABS(A1))))が良いかと思いました。
しかし、うまくいかないケースがあります。
1.5678→1.5(成功)
1.0567→1(失敗) 本来なら1.0としてほしい
1.0067→1(失敗) 本来なら1.0としてほしい

このように、小数点を表示させることがあります。
このような場合でも処理できる関数の作り方を教えてください。

よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 普通に 1.0 と入力して、1.0 と表示させることができますか?
 できれば、同じようにすればいいと思います。
 他は、文字として表示するぐらいかと思います。

 前に同じような内容に返信したことがあったような気がするけど、
 みなさんがどう回答していたかを覚えてない。
(BJ) 2019/05/26(日) 12:55

A1に数値を入力し、B1にROUNDDOWN(A1,1-INT(LOG(ABS(A1))))を入力しました。
「普通に 1.0 と入力して、1.0 と表示させることができますか?」というのは、A1に1.0と入力するんですよね?
通常にA1に1.0と入力しても、B1は1となります。
A1を文字列表示にしても、同じ結果です。
(taki) 2019/05/26(日) 19:43

セルの書式設定の表示形式の分類の数値を選択して小数点以下の桁数を 1 にしてみてはどうでしょう。

(のりん) 2019/05/26(日) 20:33


 >A1に1.0と入力するんですよね?
 そうです。

 >B1は1となります。

 違います。
 A1に 1.0 と表示させることはできますか?
 という意味です。

 実際、A1の表示形式も書いてないし(標準の表示形式だと1.0と入力できないし、エクセルは1.0と1の分別ができない)、
 何を基準とした有効数字なのかも解らないし、
 こんなもんで良いだろう的な、しょぼい手抜きデータ数なので判断がつかないので、
 =ROUNDDOWN(A1,2)
 で、良いんじゃないかとも思ってます。

 文字にするなら、
 =TEXT(ROUNDDOWN(A1,2),"0.00")
(BJ) 2019/05/26(日) 20:47

ついでに

>有効数字2桁で表示したいです。(1.5678→1.5(成功))

の表記は誤りです。小数点以下何桁と表記しましょう。

(のりん) 2019/05/26(日) 21:15


 >何を基準とした有効数字なのかも解らないし、
 有効数字に様々な基準ってありましたっけ?

 >セルの書式設定の表示形式の分類の数値を選択して小数点以下の桁数を 1 にしてみてはどうでしょう。
 >=ROUNDDOWN(A1,2)
 >で、良いんじゃないかとも思ってます。
 この2つは 0.001026 などのデータの時に、0.0010にならないといけないのに、0.0や0になってしまいます。

 >>有効数字2桁で表示したいです。(1.5678→1.5(成功)) 
 >の表記は誤りです。小数点以下何桁と表記しましょう。 
 ちゃんと初めに3桁目は切り捨てと提示されてますよ。
 >(3桁目は切り捨て処理)

 EXCELでは数値データとしては有効数字の概念がありません。
 なので文字列の数字として表す必要があります。

 =TEXT(ROUNDDOWN(A1,1-INT(LOG(A1))),IF(1-LOG(A1)>0,"0."&REPT(0,1-INT(LOG(A1))),"0"))

 但しこの式の結果は文字なのでSUM関数などでこのデータを取り扱うと0として扱われてしまいます。
 以降の集計が特殊な計算になるので、最終結果なら良いですけど、途中計算の段階なら丸め処理だけにした方が良いです。

(sy) 2019/05/26(日) 21:20


 >有効数字に様々な基準ってありましたっけ?

 学生時代ならったのかも覚えてないので、調べた結果。
 計測器によって、まちまちの答えになっていたので。
(BJ) 2019/05/26(日) 21:26

 >計測器によって、まちまちの答えになっていたので。
 それは私の勉強不足でした。
 wikiに載ってるような事以外を習ったような記憶が無かったもので。
 出来ればそのサイト名を教えて頂けないでしょうか。

(sy) 2019/05/26(日) 21:38


 wikiにもかいてあるじゃん。

 有効数字に注意して計算する際には、重要なポイントがある。有効桁数は、あくまでも測定値の中で一番有効桁数が少ないものに合わせるという点である。

 計測値の精密さでも変わる。
 物差しだと、0.1mm未満は解らないから、その分は破棄されるみたいなこと書いてあった。
 後は自分で調べてね。

(BJ) 2019/05/26(日) 22:01


 それは測定の精度の話ですよね。
 測定値の曖昧な部分を有効数字として含めるべきかと言う話です。

 今回のように初めから2桁に合わせると指定してる場合とは全く違う話になります。

 左から初めの0以外の数字を1桁目として右に1桁ずつ増えると言うルール自体が変わるものではありません。

 今回は有効数字2桁に丸めると言う事、3桁目は切り捨てと言う条件なので、計算結果自体が変わる事は無いでしょう。

 BJさんが言われてるのは、条件自体の精度の話であって、それが適切かは分かりませんが、
 質問はその後の条件に基いた計算方法の話なので、そもそも論点が間違ってます。

(sy) 2019/05/26(日) 22:21


 で、何が言いたくてつっかかてんの!
(BJ) 2019/05/26(日) 22:40

 質問と回答の流れが変な方向に行ってるので、論点など話上の間違いを指摘してるだけです。
 特にBJさん自体に敵意とかはありません。

(sy) 2019/05/26(日) 22:45


>0.001026 などのデータの時に、0.0010にならないといけないのに
分かりません。説明してください。
『有効数字2桁で表示(3桁目は切り捨て)』の表示になりません。

(LISTRO) 2019/05/26(日) 23:45


 (LISTRO) 2019/05/26(日) 23:45
 これは何が知りたいんでしょうか?

 wikiに記載されている
 >2桁の有効数字に丸める場合、 
 >12 300 は 12 000 となる。
 >0.00123 は 0.0012 となる。
 この辺のルールが分からないと言う事でしょうか?

(sy) 2019/05/26(日) 23:55


 これが抜けてました。
 >0.1 は 0.10 となる(右に続く0は2桁に丸めたことを示している)。
 この右の2桁目の 0 の事を言ってるのかな?

(sy) 2019/05/27(月) 00:04


 そう言えば初めにご提示のこの式のまま(数値データのまま)で有効数字2桁で表現する方法がありました。

 >ROUNDDOWN(A1,1-INT(LOG(ABS(A1))))

 セルの表示書式を [指数] にして [小数点以下の桁数] を 1 にして下さい。

(sy) 2019/05/27(月) 00:58


 条件付き書式で
 =INT(LOG(ABS(A1)))
 の値に応じて表示形式を設定する方法ではだめですか?
 (想定される値の範囲を把握しておく必要がありますが)

(チオチモリン) 2019/05/27(月) 11:08


(のりん) 2019/05/26(日) 21:15

申し訳ございません。

小数点以下第1位,第2位,……という位取りと勘違いでした。

(のりん) 2019/05/27(月) 12:15


>これは何が知りたいんでしょうか?

 0.0010 → 0.0 の表示にするのではないのかなと思った次第です。

有効数字を丸めるは理解しています。
(LISTRO) 2019/05/27(月) 16:32


 >0.0010 → 0.0 の表示にするのではないのかなと思った次第です。
 >有効数字を丸めるは理解しています。

 理解してると言いながら、なぜ0.0と思えるのかが不思議ですけど、もうこれ以上私から言えるのは
 (sy) 2019/05/26(日) 23:55 や (sy) 2019/05/27(月) 00:04 や wikiとか、
 数学か物理の教科書(高校以上なら小数部の考え方も載ってるかな?)で勉強して下さいとしか。

 質問者でもないあなたの誤解を解く為だけに、これ以上今回の質問の主旨とずれたやり取りは出来ません。

(sy) 2019/05/28(火) 05:02


これだけだとあんまりなので、質問者さん主旨から脱線しまくってすいません。

よく中学生対象とかのサイトなどでは、「左から数える」などといい加減な説明してますが、
一部の条件下のみだけ通用すると言うだけです。
これは整数部が1以上の場合だけ通用します。

正確には「一番左の0以外の数字から数える」です。

(sy) 2019/05/28(火) 08:03


余計な手数を取らせました。

(sy) 2019/05/28(火) 05:02
(sy) 2019/05/28(火) 08:03

余計なお世話です。

(LISTRO) 2019/05/28(火) 21:45


皆さま

有効数字の考えについて、説明したほうがよかったですね。
大変お騒がせいたしました。
すでに皆さまご理解いただいているようですので、もう説明は不要かと思いますが、念のため。

有効数字2桁で表示(3桁目を切り捨て)とは、このような処理です。
12578→12000
125→120
708→700
78→78
78.568→78
7.8568→7.8
0.7856→0.78
0.0007856→0.00078
7.058→7.0
7.00058→7.0

ROUNDDOWN(A1,1-INT(LOG(ABS(A1))))では、最後の2行が正確に処理できなかったので、困っていました。

表記方法を変更する(小数点1桁で表記するなど)では、小数点1桁以外の数値の時に対応できないと思います。
(12578→12000としてほしいところ、12000.0では困ります)

ちなみに、有効数字で結果を丸めるのは、実務上結構使います。
それは、測定器を通して結果を出す分野でもそうですし、微生物などでもそうです。

sa様
=TEXT(ROUNDDOWN(A1,1-INT(LOG(A1))),IF(1-LOG(A1)>0,"0."&REPT(0,1-INT(LOG(A1))),"0"))で成功しました。
この数式を入れたセルと利用して合計などの計算はしないので、これでいかせていただきます。
ありがとうございました。
(taki) 2019/05/30(木) 07:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.