SIプレフィックスを使用してMS Excelで数値を表示できるかどうかは誰にもわかりませんか?
私はしたいです
... 1n、1μ、1m、1、1k、1M、1G、...
科学フォーマットの代わりに
... 1E-09、1E-06、1E-03、1、1E+03、1E+06。1E+09、...
おそらく、V (ボルト)、F (ファラッド) などの単位を追加します。
セルに文字列ではなく数値が含まれている場合は完璧です。そのため、別の形式に簡単に変更できます(科学的な形式などに戻る)
SIプレフィックスを使用してMS Excelで数値を表示できるかどうかは誰にもわかりませんか?
私はしたいです
... 1n、1μ、1m、1、1k、1M、1G、...
科学フォーマットの代わりに
... 1E-09、1E-06、1E-03、1、1E+03、1E+06。1E+09、...
おそらく、V (ボルト)、F (ファラッド) などの単位を追加します。
セルに文字列ではなく数値が含まれている場合は完璧です。そのため、別の形式に簡単に変更できます(科学的な形式などに戻る)
また、LOG と CHOOSE を使用して、1 つの数式にまとめて適度にコンパクトにすることもできます。
=ROUND(
E10 / (1000 ^ INT(LOG(ABS(E10),1000)) )
,0
) & CHOOSE(
INT(LOG(ABS(E10),1000)) + 6
,"f","p","n","µ","m","","k","M","G","T","P"
)
この式では:
科学的記法よりも優れた解決策はありません。
カスタムの数値書式を使用する場合は、手動で (または VBA を使用して) 入力して、セルの実際の内容をマスクする必要があります。
たとえば、次の形式のペアを表示する場合:
1 n 1E-09
1 µ 1E-06
1 m 1E-03
1 1
1 k 1E+03
1 M 1E+06
1 G 1E+09
0.001 の場合は、フォーマットを次のように設定する必要があります"1 m"
。これにより数値がマスクされるため、0.002 の場合は次のように設定する必要があります"2 m"
。0.004 に変更しても2 m
結果として表示されます。これは明らかに理想的ではありません。
左側に値があり、数式を使用して右側に単位を表示する 2 列のシートとして設定できますが、書式設定された値で計算を行うことができなくなります。
基本的に、答えは「いいえ」です。それは不可能です。
理論的には、数値が変更されるたびにセルの内容に応じて表示される内容を自動的に変更する VBA スクリプトを作成することもできますが、スクリプトはかさばり、マクロがオフになっている場合、送信先に深刻な問題を引き起こす可能性があります。また、特定のセルで「通常」にフォーマットされた数値が必要かどうかに応じて、あらゆる種類のコーナーケースが必要になります。理論的には可能かもしれませんが、実際には不可能です
変換テーブルと一致およびインデックス関数を使用すると、かさばりますが、可能です。
このような変換テーブルから (2 列):
1.E+15 P
1.E+12 T
1.E+09 G
1.E+06 M
1.E+03 k
1.E+00
1.E-03 m
1.E-06 µ
1.E-09 n
1.E-12 p
1.E-15 f
次に、次の翻訳を実行できます
3.68437E+11 --> 368.44 G
列AとBに換算表があり、セルG1にフォーマットされていない数値がある場合
H1
=G1/INDEX(A:A,MATCH(G1,$A:$A,-1)+1)
I1
=INDEX($B:$B,MATCH(G1,$A:$A,-1)+1)
次に、適切な数字が列 H に表示され、列 I にサフィックス/プレフィックスが表示されます。
それはまだ重く、変更された数値からの計算には逆変換を含める必要があるため、最終的な出力にのみ使用する必要があります。
特定の記号を含めるセルまたはセル範囲を選択するだけです。セルを右クリックし、[セルのフォーマット] を選択します。左側で NUMBER 形式を選択し、右側で小数点以下の桁数などを入力します。左側のフォーマット オプションのリストをずっと下に移動し、[CUSTOM] を選択します。(重要: 右側のカスタム形式オプションは選択しないでください。) TYPE: のすぐ下で、カスタム形式オプションのリストの上にあるボックスを左クリックします。(このボックスには、現在選択されている書式が表示されます。{デフォルトの数値書式を選択した場合は 0.00} この書式を維持し、さらに書式を追加します。) 0.00 の右側をクリックし、次のように入力します: " μ" [OKAY] をクリックすると、通常どおりデータを入力します。セルの書式を設定しても、入力する値には影響しません。すべての機能を通常どおり実行できます。Excelでの特殊表記
これを数値形式として行う方法はわかりません (その後の計算では、他の数値と同じように書式設定された数値を使用できます)。指定されたセル (通常はその隣、この場合は E28) の数式を取得し、数値をスケーリングし、指定された有効数字の数 (この場合は 3) に丸め、適切な SI 接頭辞を追加してから、指定された単位 (この場合、ファラッドの「F」)。ここでの利点は、数式が自己完結型であり、外部参照テーブルを必要としないことです。この式は、フェムト (10^-15) からテラ (10^12) まで有効ですが、プレフィックスを追加するために簡単に拡張できます。
=CONCAT(
ROUND(
IF(E28>1E12, E28/1E12,
IF(E28>1E9, E28/1E9,
IF(E28>1E6, E28/1E6,
IF(E28>1E3, E28/1E3,
IF(E28>1, E28,
IF(E28>1E-3, E28*1E3,
IF(E28>1E-6, E28*1E6,
IF(E28>1E-9, E28*1E9,
IF(E28>1E-12, E28*1E12,
E28*1E15
) ) ) ) ) ) ) ) ),
3 +N("This is the number of significant digits to round to")
-(1+INT(LOG10(ABS(
IF(E28>1E12, E28/1E12,
IF(E28>1E9, E28/1E9,
IF(E28>1E6, E28/1E6,
IF(E28>1E3, E28/1E3,
IF(E28>1, E28,
IF(E28>1E-3, E28*1E3,
IF(E28>1E-6, E28*1E6,
IF(E28>1E-9, E28*1E9,
IF(E28>1E-12, E28*1E12,
E28*1E15
) ) ) ) ) ) ) ) ) ))))
),
IF(E28>1E12, "T",
IF(E28>1E9, "G",
IF(E28>1E6, "M",
IF(E28>1E3, "k",
IF(E28>1, "",
IF(E28>1E-3, "m",
IF(E28>1E-6, "µ",
IF(E28>1E-9, "n",
IF(E28>1E-12, "p",
"f"
) ) ) ) ) ) ) ) ),
"F" +N("This is the unit symbol that will be appended to the end")
)
有効数字ではなく、小数点以下の固定数に丸めたい場合、式は少し単純になります。
=CONCAT(
ROUND(
IF(E28>1E12, E28/1E12,
IF(E28>1E9, E28/1E9,
IF(E28>1E6, E28/1E6,
IF(E28>1E3, E28/1E3,
IF(E28>1, E28,
IF(E28>1E-3, E28*1E3,
IF(E28>1E-6, E28*1E6,
IF(E28>1E-9, E28*1E9,
IF(E28>1E-12, E28*1E12,
E28*1E15
) ) ) ) ) ) ) ) ),
3 +N("This is the number of decimal digits to round to")
),
IF(E28>1E12, "T",
IF(E28>1E9, "G",
IF(E28>1E6, "M",
IF(E28>1E3, "k",
IF(E28>1, "",
IF(E28>1E-3, "m",
IF(E28>1E-6, "µ",
IF(E28>1E-9, "n",
IF(E28>1E-12, "p",
"f"
) ) ) ) ) ) ) ) ),
"F" +N("This is the unit symbol that will be appended to the end")
)
すべてのスケーリング定数を指数表記で記述したことに注意してください。式を入力すると、Excel はこれらを単純な数値に変更します。相対セル参照を使用すると、必要な場所に数式を簡単にコピーして貼り付けることができます。
数式は IF/CONCAT/ROUND ステートメントの 1 つのブロックに凝縮できますが、ここで行ったように配置すると、丸め定数が数式内の 1 つのポイントに分離され、変更が容易になります。