Excel에서 선택적 소수점 이하 자릿수로 숫자 서식 지정


76

Excel의 셀에 숫자가 있습니다. 소수 자릿수가 있으면 최대 2까지 표시하고 소수 자릿수가 없으면 숫자가 표시되지 않도록 숫자 형식을 원합니다.

예를 들어.

  • 15는 15.00이 아닌 15로 형식화되어야합니다.
  • 14.3453453은 14.35 형식이어야합니다.
  • 12.1은 12.1 형식이어야합니다.
  • 0은 0으로 형식화되어야합니다

내가 찾은 가장 가까운 사용자 정의 형식 코드는 0.##입니다. 불행히도이 형식 15.00은 15입니다. (소수점 추가)

이 문제를 더욱 복잡하게하기 위해 스프레드 시트는 SQL Server Reporting Services에서 내 보낸 결과입니다. 따라서 매크로가 불가능합니다. 글쎄, 0.##내 최선의 방법 인 것 같아서 그들은 여분의 기간으로 살 수 있습니다.

답변:


29

또는 다음 솔루션을 사용하여 "선택적"소수점 문제를 해결할 수 있습니다.

숫자 형식 : General;[Red](General)

이렇게하면 음수의 서식을 더 읽기 편하게 소수점 자리와 분수 값을 추가 할 수 있습니다.

포스터의 원래 질문에 대해서는 공식을 사용하여 "추가"소수점을 반올림 / 잘라야합니다. 그러나 이것은 =ROUND(<value>,<desired decimal places>)계산 비용이 많이 들지 않는 간단한 공식입니다 .

예 :

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)

3
이 답변은 더 많은 투표를 받아야합니다. 조건부 서식을 사용하지 않고 소수점을 올바르게 처리했습니다. 필자의 경우에는 소수점 이하 자릿수를 모두 표시하고 싶기 때문에 수식을 수정할 필요조차 없습니다.
— wilson mar

1
General숫자에 소수점이 너무 많은 경우 과학 표기법으로 이동하는 데 문제가 있습니다 (예 : 2.6532E-06대신) 0.0000026532.
— Dan Dascalescu

+1 피벗 테이블 레이블 (조건부 서식이 아닌 선택권). 형식 코드 $General\k가 완벽하게 수행했습니다!
— Dan Henderson

17

10 진수가 아닌 숫자에 조건부 서식을 적용합니다.

예를 들어, A1은 대상 군입니다.

  1. A1을 "###, ###. 00"으로 형식화하십시오. 10 진수로 사용됩니다.
  2. 10 진수가 아닌 숫자에 대한 조건부 서식을 정의하십시오.

    • 조건 : 셀 값 = TRUNC (A1).
    • 체재: ###,###

결과는 다음과 같습니다.

12       =>  12
14.231   => 14.23
15.00000 => 15
17.3     => 17.30

디스플레이에서 4.00으로 반올림 된 숫자 4.001의 문제가 있었지만 조건부 서식 수식 (4.001 <> 4)을 만족시키지 못하고 여전히 "4"로 표시됩니다. 이 조건식을 사용하여 해결했습니다. = ROUND ($ A1; 2) = TRUNC ($ A1)
— leokhorn 10

14

Excel 사용자 정의 형식은 부분 답변을 제공 할 수 있습니다

Excel에서 숫자의 사용자 정의 형식은 다음 형식으로 입력됩니다.

  • 양수 형식, 음수 형식, 제로 형식, 텍스트 형식

요구 사항에 가깝지만 소수가없는 숫자의 소수점 자리는 다음과 같습니다.

  • , ##. ??; (#, ##. ??); 0

예:

  • 15는 15로 표시됩니다.
  • 14.3453453이 14.35로 표시됩니다
  • 12.1은 12.1로 표시됩니다
  • 0은 0으로 표시됩니다

이것이 가장 좋은 대답입니다.
— KyloRen

4
그러나 실제로 올바른 솔루션이나 가능한 해결 방법을 제공하지는 않습니다. 사용자 정의 숫자 형식에 관한 유용한 정보가 있습니다.
— Lopsided 2017

15는, 15로 표시됩니다.
— Roger Far

6

최근 Excel 2007 에서이 문제가 발생하여 값 셀에서 'TRUNC'기능을 사용했습니다.

  value  =TRUNC(B5,1)
      0      0
      5      5
    5.4    5.4
  65.43   65.4
765.432  765.4

내가 원하는 방식대로 정확하게 작동했습니다 ...


3
예, TRUNC (x, 2) 및 ROUND (x, 2)는 모두 어떤 종류의 반올림 방법에 따라 작업을 수행합니다. 그런 다음 셀 서식을 "일반"으로 설정하면 소수 자릿수가 필요한 경우에만 표시됩니다. (저는 Droj의 게시물을 답으로 표시하기 위해 투표합니다.)
— Simon East

5

조건부 서식을 사용하는 한 가지 방법이 있습니다.

  1. 셀을 마우스 오른쪽 단추로 클릭하고 "셀 서식"을 선택하십시오.
  2. "사용자 정의"를 선택하십시오
  3. "0. ####"을 입력하십시오 (최대 소수 자릿수를 제어하기 위해 더 많거나 적은 #을 추가하십시오)
  4. 확인을 클릭하십시오
  5. 셀을 선택한 상태에서 "조건부 서식"을 사용합니다 (Excel 버전에 따라 홈의 서식 또는 단추 메뉴 항목 일 수 있음)
  6. 공식 "= MOD (H32,1) = 0"을 기반으로 새 규칙 추가

    편집 -더 나은 수식은 "= MOD (ROUND (H32,2), 1) = 0"이고 '2'는 원하는 소수점 이하 자릿수입니다. 숫자가 정수로 반올림되는 경우 이전 공식은 소수점 이하를 남깁니다.

    수식의 H32를 셀의 ID로 바꾸십시오. 그러나 $ 부호가 없는지 확인하십시오! ($ 기호가 없으면 형식을 다른 셀에 복사 할 수 있습니다)

  7. 이 규칙의 형식으로 숫자 탭을 선택하고 "사용자 정의"를 선택하십시오.

  8. 이번에는 공식 "0"을 입력하십시오
  9. 확인을 여러 번 클릭하여 시트로 돌아갑니다 (Excel 버전에 따라 다름)

그곳에서 책임감있게 즐기십시오! 다른 셀에 서식을 복사하려면 셀을 복사하고 "서식"옵션과 함께 "붙여 넣기"를 사용할 수 있습니다.


이것이 특정 (또는 최신 버전) Excel에만 적용되는지 명확히 할 수 있습니까? 나는 여전히 2003을 사용하고 있으며 난처한 수의 다른 사람들도 마찬가지라고 생각합니다. 조건부 서식으로 이동하면 숫자 서식, 글꼴, 테두리 및 패턴 만 수정할 수있는 옵션이 없습니다. 감사합니다
— SSilk

방금 Excel 2010 에서이 접근법을 시도했지만 정상적으로 작동했습니다. 이전 버전의 Excel에서는 작동하지 않습니다 (적어도 Excel 2010의 "호환성 모드"검사기가 알려줍니다).
— barfuin 2019

2

Reporting Services에서는 숫자 서식에 대한 식도 작성할 수 있습니다. 내 상황에서 나는

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

숫자 형식 표현식으로. 이렇게하면 값이 정수인지 여부에 따라 두 가지 셀 형식의 Excel 파일이 생성됩니다.


1

귀하 / 귀하의 사용자가 셀에 직접 값을 입력합니까, 아니면 수식이나 매크로로 채워져 있습니까?

셀이 사람에 의해 직접 채워지지 않으면 계산 된 값을 숨겨진 범위에 저장 한 후 다음과 같은 수식을 사용하여 형식화 된 텍스트를 사용자에게 표시 할 수 있습니다.

=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#"))

(여기서 'A1'은 참조되는 셀입니다)

수식은 다음과 같은 값을 표시합니다.

 -------------------------
 |Original     |Formatted|
 |-------------+---------|
 |         15  |       15|
 | 14.3453453  |    14.35|
 |       12.1  |     12.1|
 |          0  |        0|
 |    -15.123  |   -15.12|
 |      1.004  |        1|
 -------------------------

NB : 수식 출력은 숫자가 아닌 텍스트 문자열이므로 다음과 같습니다.

  • 출력은 기본적으로 왼쪽 정렬입니다.
  • 추가 계산에서 출력을 사용할 수 없습니다 (대신 참조되는 원래 셀을 사용해야 함)

1

셀을 '일반'으로 포맷 한 다음 데이터 유효성 검사에서 값을 소수로 제한하십시오.


스프레드 시트에 수식 (및 아마도 새로운 열)을 추가하지 않으려면 Fred의 제안이 가장 좋습니다.
— Simon East

1
이것은 사람들이 10 진수의 시각적 한계를 초과하는 숫자를 입력 할 수 없게합니다.
— barfuin 2019

1

그렇게 복잡 할 필요는 없습니다. 조건부 서식을 사용하여 독점적으로 수행 할 수 있습니다. Excel 2010이 있으므로 이전 버전에서는 작동하지 않을 수 있습니다.

  1. 셀을 일반으로 설정하십시오. 일부 숫자의 소수점 이하 자릿수는 매우 높을 수 있습니다.
  2. 셀을 강조 표시하고 조건부 서식을 클릭하십시오. 새 규칙을 클릭 한 다음 "수식 사용"을 클릭하십시오.
  3. 공식 = (B1-INT (B1))> 0을 사용하십시오 (여기서 B1은 서식을 지정하는 셀입니다)
  4. 형식 단추를 클릭하고 사용자 정의를 선택하십시오. Type 필드에 [= 0] 0;. ##을 입력하십시오.
  5. Enter를 여러 번 누르십시오.
  6. 조건부 서식을 다시 클릭하고 규칙 관리를 클릭 한 다음 방금 만든 규칙을 편집하십시오. 적용 할 범위를 포함하도록 "적용 대상"필드의 범위를 변경하십시오.

다 했어요


1

내 대답은 소수점을 제거 및 0 값을 제거합니다

조건부 서식 쓰기에서 :

General;#;;@

이것은 트릭을해야합니다.


빈 셀로 0을 표시합니다.
— lolmaus-Andrey Mikhaylov 7:21에

0

위의 누가의 위대한 대답에 더하여 그의 작품에 따른 변형이 있습니다. 값이 없으면 셀에 0을 원하지 않습니다. 셀 형식을 일반 그대로두고이 공식을 사용하십시오.

=IF((A1=""), "",IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#")))

여기서 A1은 참조되는 셀입니다.


0

이 Round기능을 사용하여 중요한 수치를 제공합니다. 그러나 표시되는 소수 자릿수는 변경되지 않습니다. general그래도 숫자 형식으로 셀을 포맷하십시오 .

ROUND(MyValue,Sig.figs - 1 - INT(LOG10(ABS(MyValue)))

왜 복잡한 INT (LOG ... 공식? 왜 ROUND (value, 2)와 형식을 일반으로하지 않습니까?
— Simon East

0
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

더 이상 고아 소수점이 없습니다.


0

이것은 소수가있을 때 십진수를 표시하는 가장 간단한 방법 인 것 같습니다. 정수에 대해서는 십진수가 표시되지 않습니다.

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

또는 셀 참조와 함께 :

=TEXT(ROUND(A1,2),"general")

준다

15 = 15
9.23432234 = 9.23


수퍼 유저 @lookingforsame에 오신 것을 환영합니다. 그래도 질문의 숨겨진 세부 사항을 조심하십시오. 이 경우 op는 출력이 SQL에서 나온 것이라고 말하며 매크로를 사용할 수 없으면 수식도 가능하지 않을 수 있습니다. 답변하기 전에 의견으로 질문을 넣을 가치가 있습니다. 그래도 새로운 사람을 만나서 반갑습니다.
— Julian Knight
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.