『ユーザー定義の「ss.000」で矛盾が』(kou) ものすごく当たり前の事かも知れませんが 納得いかない事があるので教えてください。 数値 0.0000236 をユーザー定義の「ss.000」で表すと02.039となります。 =Second(0.0000236) は、2なので ---> 2秒 =0.0000236-Second(0.0000236) をEXCELで求めると -1.9999764 0.0000236<Second(0.0000236)となりますが 0.0000236は2秒より0.039大きいはずなのに納得が行きません。 私の考える矛盾を解き明かしてもらえますか ? < 使用 Excel:Excel2021、使用 OS:Windows11 > ---- > =Second(0.0000236) は、2なので と言われてるので、 =0.0000236-Second(0.0000236) は 0.0000236 - 2 なので、-1.9999764となるのは当然では。 > 0.0000236は2秒より0.039大きいはずなのに納得が行きません。 単位が違いうものをそのまま比較できません。 単位をそろえないと。 0.0000236はシリアル値(1日が1) Second(0.0000236) は単位が秒 =0.0000236-TIME(0,0,Second(0.0000236)) というようにTIME関数でシリアル値に変換して計算すれば、 00.039になります。(ユーザー定義が「ss.000」のとき) (hatena) 2023/12/09(土) 11:01:15 ---- 比較する元が違うのでマイナスになるのは間違っていないとの事ですよね。 ん−、まだ納得できていません。 >0.0000236はシリアル値(1日が1)     これを秒表示(ss.000)では2.039なので2秒より確実に大きいとの意味ではないのですか ? (kou) 2023/12/09(土) 11:17:25 ---- >=Second(0.0000236) は、2なので ---> 2秒 2「秒」と思うのは人間が勝手にそう思っているだけで、 エクセルからすれば「単なる2」であり、シリアル値としてなら、2「日」です。 2.039秒から2日を引いたら、マイナスになります。 (半平太) 2023/12/09(土) 11:22:54 ---- >エクセルからすれば「単なる2」であり、シリアル値としてなら、2「日」です。 Secondなのに「日」が単位になるのがさっぱりわかりません。 =Second(0.0000236) ---->2 =Second(0.45489)でも2と表示されます。 この同じ「2」両者の差は何ですか ? =Second("00:00:02")でも2 (kou) 2023/12/09(土) 11:41:01 ---- >Secondなのに「日」が単位になるのがさっぱりわかりません。 いや、エクセルは、単位には関知しないです。 単位を何にするかは人間の都合で決まります。 0.0000236を2秒と思いたい人は、2は2日と思うべきじゃないですか、と言う話なんですけど。 >=Second(0.0000236) ---->2 >=Second(0.45489)でも2と表示されます。 >この同じ「2」両者の差は何ですか ? 差はありません。 あとは Second関数のヘルプ をお読みいただくしかないです。 (半平太) 2023/12/09(土) 12:12:17 ---- >単位を何にするかは人間の都合で決まります。 Second()なので単位は、秒では無いのですか? >0.0000236を2秒と思いたい人は、2は2日と思うべきじゃないですか、と言う話なんですけど。 これ、禅問答のようで私には理解できません。 >差はありません。    同じと言うならこれも私の理解を超えています。 Second関数のヘルプを参照との事ですが  具体的にどこをみれば良いですか ? 以下などを見ても参考になる内容ではありません。 https://support.microsoft.com/ja-jp/office/second-%E9%96%A2%E6%95%B0-740d1cfc-553c-4099-b668-80eaa24e8af1 Second("12:15:45")のような使い方を前提にしているので シリアル値が小数点が小数点であるような場合は、利用しない方が良さそうだと思えます。 (kou) 2023/12/09(土) 12:52:04 ---- もっと簡単な話で書くとこういうことです。話の筋としては全く同じ話です。 =Time(1,10,0) と入力して、セルの書式を標準にしてみてください。 0.048611111 となると思います。 Excelは、1時間10分を 0.048611111という数値で保持しているということです。 これをシリアル値と言います。(1日の長さを1 とする実数で保持しています。) 同じように、1時間10分と1時間を並べて書くと、 Time(1,10,0) は、 0.048611111 Time(1, 0,0) は、 0.041666667 となります。 この差に相当する10分はシリアル値ではいくつに相当しますか? という質問には、0.048611111 ‐ 0.041666667 と答えるはずですよね。 決して 0.048611111 - 1 とは答えないはずなんです。 そういう話ですよ。 落ち着いて深呼吸してから、皆さんの回答を最初からもう一度読まれたらいかがですか? (こういう話では?) 2023/12/09(土) 13:45:41 ---- 0.0000236 は 0時間0分02秒 、 0.45489 は 10時間55分02秒 です。 SECOND関数は、この秒部分を返すので、どちらも2秒となります。 手計算でこのプロセスを見てみましょう. シリアル値では 1=1日です。 時間に変換するには、1日あたり24時間なので、24を掛けます。 0.0000236×24 = 0.0005664 時間 0.4548900×24 =10.9173600 時間 それぞれ時間部分は、0時間と10時間になります。 分に変換するには1時間あたり60分なので、60を掛けます 0.4548900の残りは0.9173600時間なので、これを分に変換します 0.0005664 時間×60 = 0.033984 分 0.9173600 時間×60 = 55.04160 分 それぞれ分部分は、0分と55分になります。 秒に変換するには1分あたり60秒なので、60を掛けます 0.4548900の残りは 0.04160分なので、これを秒に変換します。   0.033984 分×60 = 2.03904秒 0.041600 分×60 = 2.49600秒 以上で 0.0000236 は 0時間 0分02.03904秒 0.4548900 は 10時間55分02.49600秒 であることが計算できました。 0.0000236-SECOND(0.0000236) という計算は意味がなくて、 0.0000236×24×60×60-SECOND(0.0000236) = 2.03904 - 2 = 0.03904 これが1秒未満の秒数です。 (´・ω・`) 2023/12/09(土) 13:57:13 ---- (´・ω・`)さん、実例を上げていただきありがとうございます。 手計算でこのプロセスを見てみると言う大変判りやすい説明で 以下が、時間(H)、分(m)では違うが分(S)では同じ「2」なのも理解できました。 =Second(0.0000236) =Second(0.45489) |[A] |[B] |[C] |[D] [4]|0.0000236|この数は、シリアル値を表す (1日=1)| | [5]| | | | [6]| | 0.00056640 |時間|=A1*24 [7]| | 0.03398400 |分 |=A1*24*60 [8]| | 2.03904000 |秒 |=A1*24*60*60 [9]| |(0時間0分02.03904秒) | | >0.0000236-SECOND(0.0000236) という計算は意味がなくて、 納得、良くわかりました。 >0.03904 これが1秒未満の秒数です。 時間の単位が秒より下がなく 秒までは、分、秒は60進数ですが秒以下は「ミリ秒」では1000進数なので 1000ミリ秒で1秒換算。 今回の例では、39.04ミリ秒となります。 (kou) 2023/12/09(土) 14:46:24