2

テキスト値として保存されている単一の数値をフォーマットしようとしています。

たとえば、次のように変換したいと思います。

5145350002005000080

に:

5145-350002-00500-0080

私が使用している式は次のとおりです。

= text(A1、 "0000-000000-00000-0000")

私が受け取っている出力は次のとおりです。

5145-350002-00500- 0000

予想どおり、最後の4文字が「0080」ではなく「0000」なのはなぜですか。文字数制限はありますか、それとも数式が間違っていますか?

4

2 に答える 2

3

多数の算術からの引用:

Excelの制限は、数値の有効数字15桁です。16桁のクレジットカード番号を入力すると、1234567890123456は1234567890123450になります。

実際には、5145350002005001111でも結果はになり5145-350002-00500-0000ます。

さらに、入力セルが選択されているときの数式バーを見てください-私のExcel 2007の場合、次のように表示されます。

Excelの数の制限

お役に立てば幸いです)

編集:

タスクを解決するための解決策として-数値をテキストとしてフォーマットし、次の数式を使用します。

=LEFT(A1,4)&"-"&MID(A1,5,6)&"-"&MID(A1,11,5)&"-"&RIGHT(A1,4)
于 2013-02-07T16:26:38.517 に答える
2

これがカスタム関数です。ブックの通常のコードモジュールに配置すると、= FormatLargeNumber( "A1")によってセル内で呼び出すことができます。

Public Function FormatLargeNumber(val As String)
'This function parses extremely large numbers per your example.
' Modify as needed.
FormatLargeNumber = Left(val, 4) & "-" _
                    & Mid(val, 5, 6) & "-" & _
                    Mid(val, 11, 5) & "-" & _
                    Right(val, 4)



End Function
于 2013-02-07T16:39:39.270 に答える