2010-11-01 37 views
2

我有一列「文件大小」輸出不佳,因爲它不一致。例如,值可能是「4GB」,「32 MB」,「320 KB」,「932字節」等。我需要將這些全部轉換爲標準值,以便我可以將它們添加爲報告。將各種文件大小轉換爲字節

+0

請發佈您嘗試過什麼,結果如何。 – 2010-11-01 20:22:40

+0

如果沒有適當的基礎數據,您的價值觀將會被錯誤地重複。以GB表示時,499MB是否消耗0或1GB? '932字節'呢? ...〜4GB數據中有多少字節? 4294967296或4400000000或3900000000 ....只是需要考慮。使用粗糙的四捨五入並完成它。 – jcolebrand 2010-11-01 20:23:39

回答

0

字節,千字節,兆字節等都是公制單位。只需爲您的報告選擇一個標準單位(例如兆字節),然後乘以或除以不同單位給出的值即可獲得您需要的值。

1

我會說你有兩個選擇:

1:要求所有的這些數據可以以字節爲單位(可能不是可行的,如果數據已經存在)

2:使用正則表達式來分隔然後使用一個switch語句(或循環或任何你喜歡的)來執行正確的乘法運算,以獲得以字節爲單位的數字(可能是兩者中較容易的)。

編輯:

的正則表達式將是這個樣子:

(\d*) *(.*) 

這將分別捕獲數字和單位而忽視了兩者之間的任何空白(你仍然需要修正輸入到正則表達式,因爲前面和後面的空格可能會導致一些悲傷)。

2

考慮使用此方法

  • 接一個顯示格式。也許選擇字節。

對於每個小區:

  • 確定其比例。這可能涉及字符串解析,尋找「結束於」一些有效範圍的可能性:「字節」,「kb」,「mb」,「gb」,「千字節」,「千兆字節」。首先轉換爲小寫,以確保清醒。考慮拼寫錯誤!

  • 提取數字。使用此VBA numeric regex的變體來提取數字。小心小數點!

  • 你的輸出將是(對數)×(以字節爲單位的規模)

2

這裏是一個非常單純的答案 - 但它可能使這是一個非常快速修復你,如果精確的字節計數並非全部重要。只要做一個簡單的文字搜索和替換。

用「000」,「MB」用「000000」和「GB」用「000000000」替換「KB」(和「千字節」及其他變體)。用「」替換「字節」。然後將單元格/列類型轉換爲數字。

如果值是用小數(「4.32 MB」)給出的,那麼它不會那麼容易,但是您的示例應該可以正常工作。

相關問題