ExcelのセルのバイトをKB、MB、GBなどとしてフォーマットするにはどうすればよいですか?


88

セルにバイト単位の値があります。しかし、誰も728398112238を読むことはできません。むしろ678.37GBと言いたいです。

比較的簡単にフォーマットする数式を作成するには(http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html

しかし、これを「フォーマット」として行う方法はありますか?セルに大きな数字を入れたいのですが、人間が読める形式で表示します。


3
次のようなものに興味がある場合は、簡単に説明してください。「kB」が標準です(大文字ではなく小文字の「k」)。出典:en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo-興味がない場合は、私の投稿を無視してください:)
PonyEars 2013年

この投稿のリンクは無効です。数式を使用したソリューションへの別のリンクは次のとおり
Joost

回答:


100

Excelの書式設定機能で実際に計算を行うことはできません。ただし、次のようなものを使用して、大まかな見積もりを行うことができます。

[<500000]#,##0" B";[<500000000]#,##0,," MB";#,##0,,," GB"

1
うわー..あなたは私が計算を行うことができないという私の疑いを確認しました..しかしあなたの解決策は天才です!それかそれに近いものを使います。ありがとう!
RickMeasham 2009年

6
''を千単位の区切り文字として '、'をカンマ区切り文字として使用する地域設定の場合:[<500000] ### 0 "B"; [<500000000] ### 0 "MB"; ### 0 "GB"
Grastveit 2013

1
申し訳ありませんが、このコードは間違っています!「5」または500000で割ると、値は完全に異なる値に変換されます。値「569692」を使用しましたが、このコードで「1MB」が得られました
。ターカー2018

54

これが私が使っているものです:-

[<1000000]0.00," KB";[<1000000000]0.00,," MB";0.00,,," GB"

正常に動作しているようです。


2
完璧ではありませんが(1000対1024の倍数)、十分であり、賛成です。ありがとう!
skwerl 2012

2
Kevin:kB / MB / GBは、1000の倍数でのみ実際に正しいです(SIで定義されているように、Macとハードドライブで使用されます)。1024(LinuxGUIで使用されるKiB / MiB / GiBの方が正確に記述されている)が必要であっても、これは変わらないと思います。したがって、この歴史的で紛らわしい表記を維持しているのはWindowsであることを指摘してください。バイナリ表記は前世紀に標準化されたので、彼らがこのプログラムを利用する時期が来ています。;-)
ルークアッシャーウッド2014年

1
または、KB、MB、GBの代わりにバイト、KB、およびMBが必要な場合:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

13

上記のフォーマットアプローチは機能しますが、3つのレベルでのみ機能します。上記はKB、MB、GBを使用しました。ここでは6つに拡張しました。セルを右クリックして、[セルの書式設定]を選択します。[番号]タブで、[カスタム]を選択します。次に、[タイプ:]ボックスに次のように入力します。

[<1000]##0.00"  B";[<1000000]##0.00," KB";##0.00,," MB"

次に、[OK]を選択します。これには、B、KB、およびMBが含まれます。次に、同じセルを選択した状態で、[ホーム]リボン、[条件付き書式]、[新しいルール]の順にクリックします。を含むセルのみをフォーマットするを選択します。次に、以下のルールの説明で、1000000000以上のセル値(つまり9つのゼロ)を持つセルのみをフォーマットします。次に、[フォーマット]、[数値]タブ、[カスタム]をクリックし、[タイプ:]ボックスに次のように入力します。

[<1000000000000]##0.00,,," GB";[<1000000000000000]##0.00,,,," TB";#,##0.00,,,,," PB"

[OK]、[OK]の順に選択します。この条件付き書式は、値が1,000,000,000より大きい場合にのみ引き継がれます。また、GB、TB、およびPBの範囲を処理します。

567.00  B
  5.67 KB
 56.70 KB
567.00 KB
  5.67 MB
 56.70 MB
567.00 MB
  5.67 GB
 56.70 GB
567.00 GB
  5.67 TB
 56.70 TB
567.00 TB
  5.67 PB
 56.70 PB

PBより大きいものは、56,700PBなどの大きいPBとして表示されます。さらに大きな値、EBなどを処理するために別の条件付き書式を追加できます。


1
マイナーノート:インストールに他のセパレーターを規定するロケールがある場合は、上記の文字列のセパレーターを適切なものに置き換えてください。私の言語では、、および。[<1000] ## 0,00 "B"; [<1000000] ## 0,00。 "KB"; ## 0,00 .. "MB"と[<1000000000000]を使用する必要がありました。 ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB";#。##
0,00

12

Excel形式の条件では、数値サイズに関連する3つの条件のうち1つしか表示されません(「正、負、ゼロ、テキスト」としてコード化されますが、次のように表示することをお勧めしますif isnumber and true; elseif isnumber and false; elseif number; elseifはテキストです

だから私にとって最良の答えは、他の地域のフォーマットに対するデビッドとグラスベイトのコメントです。

これが私が作成するレポートに応じて使用するものです。

[<1000000]#,##0.00," KB";[<1000000000]#,##0.00,," MB";#,##0.00,,," GB"

[>999999999999]#,##0.00,,,," TB";[>999999999]#,##0.00,,," GB";#.##0.00,," MB"

[<1000000]# ##0,00 " KB";[<1000000000]# ##0,00  " MB";# ##0,00   " GB"

[>999999999999]# ##0,00    " TB";[>999999999]# ##0,00   " GB";# ##0,00  " MB"

好きなものを選んでください!


10

私の地域であるヨーロッパで機能するように少し変更しました(千単位の区切り文字として、小数点記号としてのカンマ):

[<1000000]#.##0,00" KB";[<1000000000]#.##0,00.." MB";#.##0,00..." GB"

データ変換(1000!= 1024)でも同じ問題がありますが、私にとってはうまくいきます。


4

バイナリギガバイト(1024 * 1024 * 1024の倍数)を表示する方法はわかりませんが、次のような形式を使用して10進ギガバイトを表示することができます。

0.00,,,"Gb"

2
bはビットで、Bはバイトであることに注意してください。ビットはバイトの1/8であるため、混乱を避けるために、常に正しい文字を使用してください。メガ(1000000×)のMやミリ(1/1000)のmなどのプレフィックスについても同じことが言えます。
Liggliluff 2018年

シンプルさが好きです。1,024の倍数でなくても、この回答は役に立ちます。
satoc 2018

とにかく、1024の倍数はKB、MB、GBにはなりません。それはKiB、MiB、GiBになります。
Nilpo

4

上記の式では、最初の行にマイナス記号が必要です: "= IF(A1 <-999500000000"

=IF(A1<-999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

3

そして、さらに別の解決策は、工学的記数法を使用することです。(指数が常に3の倍数であることを除けば、科学的記数法に似ています。)セルを右クリックして、[セルの書式設定]を選択します。[番号]タブで、[カスタム]を選択します。次に、[タイプ:]ボックスに次のように入力します。

##0.00E+00

次に、[OK]をクリックします。K、Mなどの代わりに、+ 3、+ 6などがあります。これは、正と負の数、および正と負の指数に対して機能します。-3はm、-6はuなどです。

567.00E-06
  5.67E-03
 56.70E-03
567.00E-03
  5.67E+00
 56.70E+00
567.00E+00
  5.67E+03
 56.70E+03
567.00E+03
  5.67E+06

2

Tera未満はGBに書き込み、999GBを超えるはTBに書き込みます

[<1000] 0 "GB"; [> 999] 0.0、 "TB"

または

[<1000] 0 "GB"; [> = 1000] 0.0、 "TB"


1

CDH hadoopを使用していますが、Excelレポートをエクスポートすると、2つの問題が発生します。

1)Linuxの日付をExcelの日付に変換します。
そのためには、日付列の横に空の列を追加します。たとえば、一番上の行がB4である場合、数式の下に貼り付けて、黒の「+」を最後の日の最後までドラッグします。カラム。次に、元の列を非表示にします

=(((B4/1000/60)/60)/24)+DATE(1970|1|1)+(-5/24)

2)ディスクサイズをバイトからTB、GB、およびMBに変換
するそのための最良の式はこれです

[>999999999999]# ##0.000,,,," TB";[>999999999]# ##0.000,,," GB";# ##0.000,," MB"

セルをフォーマットするだけで小数点以下3桁の値が表示されます->カスタムして上記のコードをそこに貼り付けます


1

これは少し「ブルートフォース」ですが、機能します;)

=IF(E4/1000<1;CONCATENATE(E4;" bps");IF(E4/1000<1000;CONCATENATE(ROUND(E4/1000;2);" kbps");IF(E4/1000000<1000;CONCATENATE(ROUND(E4/1000000;2);" mbps");IF(E4/1000000000<1000;CONCATENATE(ROUND(E4/1000000000;2);" gbps")))))

ここに画像の説明を入力してください


こんにちは、StackOverflowへようこそ。すでに多くの回答がある質問に回答する場合は、元の投稿者がすでに精査した内容を単に反映するのではなく、提供する回答が実質的である理由についての洞察を追加してください。これは、提供したような「コードのみ」の回答では特に重要です。
chb

1

これを値(バイト)の横に貼り付けると、値のサイズに合わせて自動的に変更されます。

=IF(G10>=1099511627776,CONCATENATE(ROUND((G10/1024/1024/1024/1024),1)," TB"),IF(G10>=1073741824,CONCATENATE(ROUND((G10/1024/1024/1024),1)," GB"),IF(G10>=1048576,CONCATENATE(ROUND((G10/1024/1024),1)," MB"),IF(G10>=1024,CONCATENATE(ROUND((G10/1024),1)," KB"),IF(G10>=1,CONCATENATE((G10)," BYTES"),0)))))


1

ここでのすべての回答は、10の累乗の値を提供します。適切なSI単位(1024の倍数、つまり、メビバイト、ギビバイト、およびテビバイト)を使用する形式は次のとおりです。

[>1099511627776]#.##,,,," TiB";[>1073741824]#.##,,," GiB";0.##,," MiB"

これは、小数点以下2桁を示すMiB、GiB、およびTiBをサポートします。


10の累乗で除算します。MiB、GiB、およびTiBは、1024 ^ 2、1024 ^ 3、1024 ^ 4を意味します。
サム

@Samあなたはおそらくあなたのコメントに対する答えを逃したでしょう。
KAP

2
いいえ、@ Samは正しいです。この回答では、条件として1024の倍数が正しく使用されていますが、フォーマットは10ベースのままです。
Nilpo

0

ここで答えを見た後、この数式を改善して、大きな値に小数点以下の桁数を設定し、負の値に対応できるようにしました。

=IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

1
元の質問には、数式の使用に関する詳細が含まれていました。しかし、それは数値形式を使用することについてです。あなたの解決策は、負の数を扱うことを除いて、リンクされたものと非常に似ています。それらを個別のIFステートメントに含めるのではなく、ABS()を使用して絶対値を取得します。
RickMeasham 2015

0

与えられた答えから期待された結果が得られなかったので、ここでの答えの多くは時代遅れだと思います。

サイズに応じてフォーマットしたいKB単位の値がある場合は、次のことを試すことができます。


[<1000]#" KB ";[<1000000]#0,00 " MB";0,## " GB"


初期値(KB単位)=>出力

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

正確な結果を得るために、私はむしろそれを計算したいのですが、表示形式を使用しています。

A1セルの値が29773945664927であると想定します。

  1. B1セルのコンマの数を数えます。

    = QUOTIENT(LEN(A1)-1,3)

  2. C1セルで値を1024 ^ B1で除算します。

    = A1 / 1024 ^ B1

  3. D1セルの表示単位。

    = SWITCH(B1、5、 "PB"、4、 "TB"、3、 "GB"、2、 "MB"、1、 "KB"、0、 "B")

  4. B1セルを非表示にします。

スクリーンショット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.