Comment faire en sorte que Excel affiche les valeurs numériques en tant que «monnaies» personnalisées (par exemple, cuivre, argent, or)?

3

Je voudrais avoir le format suivant dans une cellule dans Excel:

123g 99s 99c

100 cuivre (c) = 1 argent (s)
100 argent = 1 or (g)

Donc, si j'entre, 12394ce sera indiqué comme "1g 23s 94c".

Est-ce possible d'une certaine manière?

Feroc
la source

Réponses:

6

Essayez ce format personnalisé:

#0"g" #0"s" 00"c"

Notez que ceci affichera les trois "unités" quel que soit le montant réel. Il 12sera donc affiché sous la forme "0g 0s 12c". Si vous voulez seulement afficher la plus grande "unité" avec un montant différent de zéro ( 12"12c", 598"5s 98c", etc.), vous pouvez le modifier comme suit pour appliquer différents formats en fonction de la valeur:

[>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"

Ce n'est pas parfait, par exemple, 10245il sera indiqué par "1g 02s 45c", plutôt que "1g 2s 45c", car il divise simplement la valeur de la cellule plutôt que de le diviser par 100 pour obtenir les montants individuels, mais cela ne devrait pas être le cas fais ce que tu veux.

Pour gérer les valeurs négatives, vous devrez combiner le format ci-dessus avec la mise en forme conditionnelle, car Excel ne peut avoir que 3 conditions dans un seul format numérique. Essayez ce qui suit (je suppose qu'Excel 2010 devrait également fonctionner en 2007, mais pas certain des versions précédentes):

  1. Sélectionnez les cellules et allez à "Mise en forme conditionnelle" → "Nouvelle règle ..." (sous l'onglet Accueil)
  2. Sélectionnez "Utiliser une formule pour déterminer les cellules à formater"
  3. Dans la zone de formule, entrez =A1>=0, puis cliquez sur "Format ..."
  4. Sélectionnez l'onglet "Nombre", puis "Personnalisé", puis entrez le format numérique ci-dessus:
    [>=10000]#0"g" #0"s" 00"c";[>=100]#0"s" 00"c";#0"c"
  5. Cliquez "OK" deux fois.
  6. Répétez les étapes 1 et 2.
  7. Dans la zone de formule, entrez =A1<0, puis cliquez sur "Format ..."
  8. Sélectionnez l'onglet "Nombre", puis "Personnalisé" et entrez le format de numéro suivant (identique au premier, à l'exception des valeurs négatives):
    [<=-10000]-#0"g" #0"s" 00"c";[<=-100]-#0"s" 00"c";#0"c"
  9. Cliquez "OK" deux fois.

Si vous devez modifier ou supprimer les règles de mise en forme, ou les développer pour les appliquer à plusieurs cellules, allez simplement dans "Mise en forme conditionnelle" → "Gérer les règles".


Une autre option consiste à utiliser une fonction VBA pour formater les valeurs. Appuyez sur Alt+ F11pour ouvrir l'éditeur VBA, cliquez avec le bouton droit de la souris dans la fenêtre Projet et sélectionnez Insérer → Module, puis collez le code suivant (bien sûr, l'une des nombreuses façons d'écrire une telle fonction):

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

Cette approche vous offre une plus grande flexibilité que l’utilisation de formats de nombres personnalisés, et elle est plus facile à utiliser que la gestion de règles de mise en forme conditionnelles - il suffit de taper à la =MyFormat(12345)place de 12345. L'inconvénient est que vous perdez la possibilité d'effectuer des opérations mathématiques avec les données, car Excel voit maintenant les valeurs sous forme de texte et non de chiffres.

Indrek
la source
C'est très bien. Merci beaucoup, oh tu
excelles
Ah, très gentil! J'essayais de comprendre comment faire cela, mais tout ce que j'avais trouvé jusqu'ici utilisait la mise en forme conditionnelle.
Saint Wacko
À propos de votre tweak: C'est génial pour les valeurs positives, mais pour les valeurs négatives, il ne montre plus que le cuivre.
Feroc
@Feroc Ah, je n'ai pas pensé aux valeurs négatives. Voir les instructions mises à jour dans ma réponse.
Indrek
Oha ... ok, je pense alors que je vais juste avec la première solution. Je ne veux pas trop compliquer les choses. Merci beaucoup, aide précieuse.
Feroc
0

Le format personnalisé suivant fera ce que vous voulez:

??\g ??\s ??\c
Saint-Wacko
la source