某CSVファイルを開いたら、メモリ容量が527,941,632とか表示されてるわけですよ。
なんかなー。
503MB、って表示するようにしたいけど
=A1/(1024*1024) & "MB"
とか書くのもなんだかなあ。
しかもこれだと仮に同じ計算式をディスク容量で使うと1GBが1024MBと表示されてしまうわけで。
じゃあ…
=IF(A1>(1024*1024*1024), A1/(1024*1024*1024)&"GB",IF(A1>(1024*1024), A1/(1024*1024)&"MB",IF(A1>1024, A1/1024&"KB",A1&"B")))
これでどうか?
と思ったら1025を入れると1.0009765625KBとか表示されて( ゚Д゚)ヒョエー
じゃあInt((A1/1024)*100)/100みたいに…
ってこれをKBとMBとGBで同じように処理すんのかよめんどくせえええええ
しかもTBを表示できるように追加しようとするとさらにめんどくせえええええ
というわけで数式でやるとアホらしい事がわかりました。
ちょっとググったけどいい方法は見つかりませんでした。
じゃあ作りましょう。
ツール→マクロ→Visual Basic Editor
挿入→標準モジュール
で、Module1に以下のコードをコピペしてください。
Function MegaConvert(val, dig)
sUnit = ""
dig = 10 ^ digIf val > 1 Then
iBasic = CDec(1024) * CDec(1024) * CDec(1024) * CDec(1024) * CDec(1024)
idx = 1
Do While iBasic > 1
If val > iBasic Then
val = val / iBasic
sUnit = Mid("PTGMK", idx, 1)
Exit Do
End If
iBasic = iBasic / 1024
idx = idx + 1
Loop
End IfMegaConvert = (Int(val * dig) / dig) & sUnit
End Function
片手間で作ったもんなので変な動きしても許してね(ぉ
あとはワークシートに
=MegaConvert(A1, 2) & "B"
とか入れれば1300で1.26KBと表示されるようになります。
一応ペタバイトまで対応。
2つ目のパラメータは小数点以下何位まで表示するかです。上の例で3にすれば1.269KBになります。