Experimente este formato personalizado:
#0"g" #0"s" 00"c"
Observe que isso mostrará as três "unidades", independentemente do valor real, portanto, 12
será mostrado como "0g 0s 12c". Se você quer apenas mostrar a maior "unidade" com quantidade diferente de zero (então 12
seria "12c", 598
seria "5s 98c", etc), você pode ajustá-lo da seguinte maneira, para na verdade, aplicar formatos diferentes com base no valor:
[>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"
Não é perfeito, por exemplo, 10245
será mostrado como "1g 02s 45c", em vez de "1g 2s 45c", porque apenas divide o valor da célula em vez de dividi-lo por 100 para obter as quantidades individuais, mas além disso, deve fazer o que quiser.
Para lidar com valores negativos, você terá que combinar o formato acima com a formatação condicional, porque o Excel só pode ter até três condições em um único formato numérico. Tente o seguinte (estou supondo que o Excel 2010, também deve funcionar em 2007, não tenho certeza sobre versões anteriores):
- Selecione as células e vá para "Formatação condicional" → "Nova regra ..." (na guia Início)
- Selecione "Usar uma fórmula para determinar quais células devem ser formatadas"
- Na caixa da fórmula, digite
=A1>=0
e clique em "Formatar ..." - Selecione a guia "Número", depois "Personalizado" e insira o formato numérico acima:%
[>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"
- Clique em "OK" duas vezes.
- Repita as etapas 1 e 2.
- Na caixa da fórmula, digite
=A1<0
e clique em "Formatar ..." - Selecione a guia "Número" e "Personalizado" e insira o seguinte formato numérico (basicamente igual ao primeiro, exceto os valores negativos:)
[<=-10000]-#0"g" #0"s" 00"c";[<=-100]-#0"s" 00"c";#0"c"
- Clique em "OK" duas vezes.
Se você precisar modificar ou remover as regras de formatação, ou expandi-las para aplicar a mais células, basta ir em "Formatação condicional" → "Gerenciar regras".
Outra opção é usar uma função do VBA para formatar os valores. Pressione Alt + F11 para abrir o editor VBA, clique com o botão direito do mouse na janela Projeto e selecione Inserir → Módulo e cole o seguinte código (apenas uma das muitas maneiras de escrever essa função, claro):
Function MyFormat(intValue)
Dim strReturn As String
If intValue < 0 Then strReturn = "-"
intValue = Abs(intValue)
If intValue > 10000 Then
strReturn = strReturn & Fix(intValue / 10000) & "g"
intValue = intValue - (Fix(intValue / 10000)) * 10000
End If
If intValue > 100 Then
If Len(strReturn) > 0 Then strReturn = strReturn & " "
strReturn = strReturn & Fix(intValue / 100) & "s"
intValue = intValue - (Fix(intValue / 100)) * 100
End If
If Len(strReturn) > 0 Then strReturn = strReturn & " "
strReturn = strReturn & intValue & "c"
MyFormat = strReturn
End Function
Essa abordagem oferece maior flexibilidade do que o uso de formatos numéricos personalizados, e é mais fácil de usar do que o gerenciamento de regras de formatação condicionais - basta digitar =MyFormat(12345)
em vez de 12345
. A desvantagem, no entanto, é que você perde a capacidade de realizar operações matemáticas com os dados, porque o Excel agora vê os valores como texto, não como números.