Excel セルに単に異なる形式で表示するだけでなく、実際の空白スペースを作成するカスタム数値書式または類似のものを使用する必要があります。これは、実際には Excel 機能を実装する SpreadsheetGear というライブラリを使用しており、最終的な出力が文字列であるためです。
私が欲しいのはこれです:
数字が 6 桁以下の場合は、次のような形式にします。
$ xxx,xxx
$ xx,xxx
$ x,xxx
$ xxx
$ xx
$ x
上記のように、6 桁の数字の場合は「$」と最初の数字の間に 2 つの空白スペースがあり、5 桁の数字の場合は「$」と最初の数字の間に 3 つの空白スペースがあります。
つまり、6桁以下の数字の場合、数字の文字の長さは常に同じになります。
6 桁を超える数字の場合は、カンマを使用した通常の数値書式のみです。
答え1
フォーマットされたバージョンを別の列に数値ではなく文字列として保存しても構わない場合は、次のように使用できます (値がセル A1 にあると仮定)。
="$"&REPT(" ", 9-LEN(TEXT(A1,"#,##0")))&TEXT(A1,"#,##0")
このようにフォーマットされた結果は、固定幅フォントを使用すると最適に表示されます。
答え2
techie007 がリンクしている条件付き書式をカスタム書式と組み合わせて使用できます。
たとえば、セルの範囲を選択し、「セルのルールを強調表示」>「より小さい...」オプションを選択します。
条件には(最大6桁の数字は999,999)を入力し10000000
、書式には「カスタム」を入力します。
ポップアップ表示されるダイアログで、数値書式設定、カスタム書式設定に移動し、 を使用します$* #,##0
。
答え3
探しているのは、「繰り返し文字構文」です。ドル記号 ( ) と数値形式の間に
アスタリスク ( *) とスペースを入れる$と、ドル記号が左側に、数字が右側に表示されます (スペースは繰り返される文字です)。
"$* 0" or "$* #,##0"
これは日付の書式設定にも有効です。左に月、右に日付は次のようになります。
"mmmm* d"
答え4
次のような 6 つの条件付き書式を作成します。
最後の条件付き書式はスクリーンショットには表示されませんが、ゼロを追加するだけです。
カスタム数値形式を次のように設定し、上から下の順序に従います。
$_0_0_0_0_0_0_0_,#
$_0_0_0_0_0_0_,#
$_0_0_0_0_0_,#
$_0_0_0_0#,###
$_0_0_0#,###
$_0_0#,###
最初の 3 つは、不足しているコンマのためのスペースも割り当てます。
最終結果: