新しいExcelシート(2016)を開いて、セルの種類を「数字」に変更して「1.25
」と入力すると、入力された数字を「43125,00
」という値に変更してくれます。1.01
や1.9
を入力しても同様の結果が得られますが、1.99
を入力しても同様の結果が得られません – それはテキストとして扱われるか、少なくとも数値としては解析不可能なものとして扱われます
数字を正しく入力するためには,
を使わないといけないことは理解しています
質問なのですが、1.25
を数字として入力するとどうなるのでしょうか?なぜ43125,00
が出てくるのでしょうか?
52 Croo 2018-05-30
ロケールの設定では、,
が10進数の区切り文字になっています。ピリオドを使用した場合、入力は数字以外のものとして解釈されます
入力したものが有効な日付である可能性がある場合、ピリオドは日付の区切り文字として解釈されています。Excelは1.25が日付(2018年1月25日)だと考えており、内部的には43125(1900年1月0日からの日数)として表されます
セルを日付ではなく数値としてフォーマットしたので、日付の数値表現が表示されています。デフォルトの小数点以下の桁数は2に設定されており、最後にゼロが表示されます。125」のパターンがその日付を表す日のカウントで繰り返されるのは、純粋な偶然です
1.01も1.9も日付になる可能性があるので、同じことが起こります。しかし、1.99は日付にはできないので、入力されたリテラル値がテキストとして格納されます
108 fixer1234 2018-05-30
コメントを読んで、この問題の背後にある仕組みは思った以上に複雑だということが今になってわかりました。第一に、小数点以下の区切り文字はカンマであり、フルストップではありません。第二に、Excelは入力値を「日付」の値として分類していますが、それを「数値」の形式で表現しています
投稿された問題の解決策としては、小数点以下の区切り文字を変更することで、エクセルからOptions -> Advanced -> Editing options -> Decimal separator
でできます。これが修正されていれば、Excelでは入力値を「日付」の値として分類していませんでした
小数点以下の区切り文字は、誰がカンマを小数点以下の区切り文字として使うのか、という理由で、私がすぐに考えるものではありません。そしてまだ、興味深いことに、そして驚くべきことに、世界の半分は実際にそれを使用しています(https://en.wikipedia.org/wiki/Decimal_separator)
しかし、私は43125
を数値形式の「日付」の値として認識していました。小数点以下の区切り文字の問題を取り除けば、似たような例として1-25
がありますが、これはExcelが’日付’値として解釈し、’数値’形式では45658.00
となります。さらに紛らわしいのは、Excelでは「日付」の値を1.25
や1,25
などの形式で表示できるようにカスタムフォーマットを設定することができるということです
スプレッドシートの計算に「日付」の値を多用していたのですが、これが厄介なことになっています。時々、これらのスプレッドシートを開き直すと、Excel (または Openoffice) は自分たちがよく知っていると勘違いして、日付の列を理由もなく「日付」形式から「数値」形式に自動的に変換してしまうことがあります。このような場合は、right-click mouse -> Format Cells -> Number
を実行し、セルや列を正しい形式にリセットするとデータが復元されます
3 wtong 2018-05-30