programing

엑셀에서 셀을 KB, MB, GB 등으로 포맷하려면 어떻게 해야 합니까?

bestprogram 2023. 6. 1. 23:02

엑셀에서 셀을 KB, MB, GB 등으로 포맷하려면 어떻게 해야 합니까?

셀에 바이트 단위의 값이 있습니다.하지만 728398112238은 아무도 읽을 수 없습니다.678.37GB로 표시되는 것이 좋습니다.

비교적 쉽게 포맷할 수 있는 공식을 작성하는 방법(여기에 http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html) 이 있습니다.

하지만 이것을 '형식'으로 할 수 있는 방법은 없을까요?큰 숫자를 셀에 넣고 싶은데, 사람이 읽을 수 있는 형식으로 표시해 주세요.

엑셀의 포맷 기능에서는 계산을 제대로 할 수 없습니다.다음과 같은 방법을 사용하여 대략적인 추정을 수행할 수 있습니다.

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

다음은 제가 사용하고 있는 것입니다.

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

잘 작동하는 것 같습니다.

위의 형식 지정 접근 방식은 세 가지 수준에서만 작동합니다.위의 항목은 KB, MB 및 GB를 사용했습니다.여기서 6개로 확장했습니다.셀을 마우스 오른쪽 단추로 클릭하고 셀 형식 지정을 선택합니다.번호 탭에서 사용자 지정을 선택합니다.그런 다음 유형: 상자에 다음을 입력합니다.

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

그런 다음 확인을 선택합니다.여기에는 B, KB 및 MB가 포함됩니다.그런 다음 동일한 셀을 선택한 상태에서 홈 리본, 조건부 서식, 새 규칙을 누릅니다.포함하는 셀만 형식 지정을 선택합니다.그런 다음 규칙 설명 아래의 셀만 형식 지정 값이 1000000000 이상인 셀만 형식 지정(0이 9개임).그런 다음 형식, 번호 탭, 사용자 지정을 클릭하고 유형: 상자에 다음을 입력합니다.

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

확인 및 확인을 선택합니다.이 조건부 형식은 값이 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 등을 처리하기 위해 다른 조건부 형식을 추가할 수 있습니다.

Excel 형식 조건은 숫자 크기와 관련된 세 가지 조건 중 하나만 표시되지만("긍정적", "부정적", "0", "텍스트"로 코딩됩니다.), "숫자와 참인 경우", "숫자와 거짓인 경우", "숫자와 거짓인 경우", "숫자와 거짓인 경우", "텍스트인 경우"로 표시하는 것이 좋습니다.

그래서 저에게 가장 좋은 대답은 다른 지역 형식에 대한 그라스베이트의 논평뿐만 아니라 데이비드의 것입니다.

보고서 작성에 따라 사용하는 것은 다음과 같습니다.

[<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"

골라보세요!

내 지역인 유럽에서 작동할 수 있도록 약간의 변경(. 수천 개의 구분 기호, 쉼표를 십진수 구분 기호로 사용):

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

데이터 변환(1000!= 1024)과 관련하여 여전히 동일한 문제가 있지만, 저에게는 효과가 있습니다.

아직 아무도 이 답을 쓰지 않았기 때문에 저는 이것이 미래의 스레드 찾기에 좋을 것이라고 생각했습니다.변환 기능으로 비트와 바이트에 대한 엑셀 변환을 쉽게 할 수 있는 방법이 있습니다.

당신은 단지 사용하기만 하면 됩니다.=CONVERT(Number or Cell, "fromDatatype", "toDatatype")

예를 들면 그서예를들면래,면들,=CONVERT(5, "Gbyte", Mbyte")

이에 대한 설명서는 측정 시스템 -> 정보 https://support.microsoft.com/en-us/office/convert-function-d785bef1-808e-4aac-bdcd-666c810f9af2 에서 찾을 수 있습니다.

슬프게도 다음과 같은 접두사에 대한 차트가 없습니다.M,Mi,G또는Gi하만쉽죠지. 만 사용하고 사용하면 .공통 접두사만 사용한 다음 바이트를 각각 비트합니다.

접두사 짧다 조금 바이트
요타 Y 이비트 이바이트
제타 Z 즈비트 즈바이트
엑사 E 이비트 이바이트
페타 P 피비트 피바이트
테라 T 티비트 티바이트
기가 G 지비트 Gbyte
메가 M 엠비트 엠바이트
킬로 k kbit 킬로바이트
헥토 h hbit hbyte
데카 잽싸게 다바이트
요비 이이 이빗 이비테
제비 지빗 지바이트
엑비 에이 에이빗 에이비테
페비 파이 피빗 피비테
테비 티빗 티벳
기비 기빗 기비테
메비 미빗 미비테
키비 키빗 키비테

이진 기가바이트(1024x1024x1024의 배수)를 표시하는 방법은 모르겠지만 다음과 같은 형식을 사용하여 십진수 기가바이트를 표시할 수 있습니다.

0.00,,,"GB"

위의 공식은 첫 번째 줄에 음수 기호가 필요합니다. "=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의 배수라는 점을 제외하면 과학적 표기법과 같습니다. 셀을 마우스 오른쪽 단추로 클릭하고 셀 형식 지정을 선택합니다.번호 탭에서 사용자 지정을 선택합니다.그런 다음 유형: 상자에 다음을 입력합니다.

##0.00E+00

그런 다음 확인을 클릭합니다.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

테라 미만의 쓰기 용량(GB), 999GB 이상의 쓰기 용량(TB)

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

OR

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

값(바이트) 옆에 붙여넣으면 값 크기에 상관없이 자동으로 변경됩니다.

=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)))))

여기에 있는 모든 답은 10의 거듭제곱 값을 제공합니다.다음은 적절한 SI 단위(1024의 배수)를 사용하는 형식입니다.메비바이트, 기비바이트 및 테비바이트):

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

이것은 MiB, GiB, TiB가 소수점 두 자리를 표시하는 것을 지원합니다.

저는 CDH 하둡을 사용하는데 엑셀 보고서를 내보낼 때 두 가지 문제가 있습니다.

날짜로 합니다. Linux Excel 파일은 다음과 같습니다.
이를 위해 날짜 열 옆에 빈 열을 추가하면 맨 위 행이 B4라고 말하고 수식 아래에 붙여넣은 다음 검은색 "+"를 열의 끝에 있는 마지막 날까지 끌어다 놓습니다.그런 다음 원래 열 숨기기

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

및 MB로 변환합니다. 디스크 크기는 TB, GB는 MB입니다.
가장 과 같습니다.

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

그것은 단지 셀을 포맷하기만 하면 3자리 숫자로 값을 줄 것입니다 --> 위의 코드를 사용자 지정하고 거기에 붙여넣습니다.

약간 "잔인한 힘"이지만 효과가 있습니다 ;)

=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")))))

여기에 이미지 설명 입력

정확한 결과를 위해서는 디스플레이 형식을 사용하는 것보다 계산하는 것이 낫습니다.

A1 셀의 값이 29773945664927이라고 가정합니다.

  1. B1 셀의 쉼표 수를 계산합니다.

    =동일점(LEN(A1)-1,3)

  2. C1 셀에서 값을 1024^B1로 나눕니다.

    = A1/1024^B1

  3. D1 셀의 디스플레이 장치입니다.

    = 스위치(B1, 5, PB", 4, TB", 3, GB", 2, MB", 1, KB", 0, B")

  4. B1 셀을 숨깁니다.

스크린샷

여기서 답을 본 후에 이 공식을 개선하여 더 큰 값에 소수점을 두고 음의 값을 맞추었습니다.

=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""")))))))))))

저는 주어진 답변에서 기대한 결과를 얻지 못했기 때문에 여기에 있는 많은 답변들이 구식이라고 의심합니다.

크기에 따라 형식을 지정할 KB 값이 있으면 다음을 시도할 수 있습니다.


공식

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


초기 값(KB) => 출력

952=>952 KB

1514=>1.51 MB

5122323=>5.12 GB

저는 마지막 버전이 공유되는 것을 좋아하지만 프랑스어 엑셀 버전을 공유하고 싶었습니다.

소수점 뒤에 숫자가 있기 위해 쿼티엔트를 반올림 함수로 대체했습니다. 필요한 것은 다음과 같습니다.

=SI(
   F3<1024; F3 & " B"; 
      SI(F3<(1024*1024); ARRONDI(F3/1024;2) & " KB"; 
          SI(F3<(1024*1024*1024); ARRONDI(F3/(1024*1024);2) & " MB";
               SI(F3<(1024*1024*1024*1024); ARRONDI(F3/(1024*1024*1024);2) & " GB";
                    SI(F3<(1024*1024*1024*1024*1024); ARRONDI(F3/(1024*1024*1024*1024);2)& " TB"; "H")
               ) 
           )
       )
   )

수년간의 정교함 끝에 이를 위한 공식으로 가는 것은 여기에 있습니다.

시작 변수 정의를 사용하여 변환의 측면을 정의할 수 있습니다.

  • 은 포맷할 바이트를 포함하는 셀을 정의합니다.
  • cell_style은 R1C1( 열) 또는 A1(영숫자) 셀 참조 스타일을 사용할지 여부를 정의합니다.
  • unit_type은 결과 출력을 이진 또는 메트릭 값으로 계산할지 여부를 정의합니다.
=LET(

README_,"This formula formats a byte count, rounding it to its significant digit and to two decimal places, applying the appropriate unit of measurement",

README1,"Adjust the below [variable] definitions to your need, where the viable options are (bracketed)",
README2,"[cell]       specify the individual cell address containing the byte count to format, this should be contained within double quotation marks",
README3,"[cell_style] define if you're using the R1C1 (rowcolumn) or the A1 (alphanumeric) cell reference style",
README4,"[unit_type]  define if you want the resulting output calculated to a base 2 (binary) or base 10 (metric) value",

CONSTANTS,"Do not alter these",
binary,1024,
metric,1000,
rowcolumn,0,
alphanumeric,1,

VARIABLES,"Adjust these to your need",
cell,"RC[-1]",
unit_type,binary,
cell_style,rowcolumn,

IF(N("Error if the speficied cell is not a number")+
NOT(ISNUMBER(INDIRECT(cell,cell_style))),"#MISSINGNO",

IF(unit_type=1000
+N("Calculate the result at base 10"),

IF((INDIRECT(cell,cell_style)>=1000^8),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000/1000/1000/1000/1000/1000),"#,## ????.00 \Y\B"),
IF((INDIRECT(cell,cell_style)>=1000^7),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000/1000/1000/1000/1000),"#,## ????.00 \Z\B"),
IF((INDIRECT(cell,cell_style)>=1000^6),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000/1000/1000/1000),"#,## ????.00 \E\B"),
IF((INDIRECT(cell,cell_style)>=1000^5),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000/1000/1000),"#,## ????.00 \P\B"),
IF((INDIRECT(cell,cell_style)>=1000^4),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000/1000),"#,## ????.00 \T\B"),
IF((INDIRECT(cell,cell_style)>=1000^3),
TEXT((INDIRECT(cell,cell_style)/1000/1000/1000),"#,## ????.00 \G\B"),
IF((INDIRECT(cell,cell_style)>=1000^2),
TEXT((INDIRECT(cell,cell_style)/1000/1000),"#,## ????.00 \M\B"),
IF((INDIRECT(cell,cell_style)>=1000^1),
TEXT((INDIRECT(cell,cell_style)/1000),"#,## ????.00 \K\B"),
IF(INDIRECT(cell,cell_style)=1,
"1 B",TEXT(INDIRECT(cell,cell_style),"## ????0 \B")
))))))))),

IF(unit_type=1024
+N("Calculate the result at base 2"),

IF((INDIRECT(cell,cell_style)>=POWER(2,80)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,80)),"#,## ????.00 \Y\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,70)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,70)),"#,## ????.00 \Z\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,60)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,60)),"#,## ????.00 \E\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,50)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,50)),"#,## ????.00 \P\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,40)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,40)),"#,## ????.00 \T\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,30)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,30)),"#,## ????.00 \G\i\B"),
IF((INDIRECT(cell,cell_style)>=POWER(2,20)),
TEXT((INDIRECT(cell,cell_style)/POWER(2,20)),"#,## ????.00 \M\i\B"),
IF((INDIRECT(cell,cell_style)>=1024),
TEXT((INDIRECT(cell,cell_style)/1024),"#,## ????.00 \K\i\B"),
IF(INDIRECT(cell,cell_style)=1,
"1 B",TEXT(INDIRECT(cell,cell_style),"## ????0 \B")
)))))))))))))

반대로 미리 포맷된 값에서 대략적인 원시 바이트 수를 도출하려면 공식도 준비되어 있습니다.

만약 당신이 하나의 셀에서 작업하기를 원한다면요.셀이라고 칩시다.F3다음을 사용할 수 있습니다.

=IF(F3<(1024), F3 & " B", IF(F3<(1024*1024), QUOTIENT(F3,1024) & " KB", IF(F3<(1024*1024*1024), QUOTIENT(F3,(1024*1024)) & " MB", IF(F3<(1024*1024*1024*1024), QUOTIENT(F3,(1024*1024*1024)) & " GB", IF(F3<(1024*1024*1024*1024*1024), QUOTIENT(F3,(1024*1024*1024*1024)) & " TB", "H")))))

이것은 구글 시트에서 시도되었습니다. 그렇지 않으면 원인을 수정해야 할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/1533811/how-can-i-format-bytes-a-cell-in-excel-as-kb-mb-gb-etc