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


76

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

예를 들어.

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

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

이 문제를 더욱 복잡하게하기 위해 스프레드 시트는 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.