web-dev-qa-db-fra.com

Comment afficher une division par zéro dans une grille?

Je dois créer une application web interne pour mon entreprise (avec asp.net C # et Telerik). J'ai une grille avec des rapports financiers à l'intérieur avec un KPI simple affichant le budget déjà utilisé en pourcentage:

Delta = 1 - (Budget - Actuals) / Budget

Mais Budget est souvent égal à zéro. Et parfois Réels est également égal à zéro. Mais par défaut, ma bibliothèque affiche le résultat de X/0 avec Infinity et le résultat de 0/0 avec NaN. Voici un exemple de ma grille:

enter image description here

Je ne sais pas quoi penser de ces valeurs ... Je ne pense pas qu'un zéro soit plus approprié car X/0! = 0.

Savez-vous ce qui est le plus pertinent pour l'utilisateur? Je ne peux pas vraiment demander aux utilisateurs, et je dois livrer cette grille rapidement mais je voudrais faire quelque chose avec une bonne UX.

23
Alex

Vous pouvez essayer d'utiliser une brève description de la cause réelle, par exemple pas de budget

63
msp

Une solution courante pour les cellules de tableau qui ne sont pas disponibles ou applicables dans certaines situations (comme votre% Δ pour un budget de 0) consiste à utiliser le texte d'espace réservé n/a (ou N/A).

28
Sebastian Negraszus

Vous pouvez utiliser une icône de point d'exclamation qui montre une info-bulle au survol pour expliquer exactement ce que cela signifie et ce qui manque/quelle valeur est mauvaise:

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

13
CodeManX

Vous pourriez envisager d'avoir un mot avec les utilisateurs et leur demander ce qu'ils pensent qu'ils devraient voir, mais attention, leur réaction initiale pourrait être "zéro", ce qui n'est DEFINITIVEMENT pas juste dans un sens mathématique.

Personnellement, je laisserais la sortie vierge, ou j'utiliserais peut-être le terme "non défini". S'ils veulent vraiment voir un symbole, je pense que vous pouvez y placer le symbole de l'infini (∞) en toute sécurité (ce n'est pas vraiment juste d'un point de vue mathématique, mais cela les empêche de penser qu'ils peuvent utiliser les résultats dans d'autres calculs).

11
Michael Kohne

La plupart des feuilles de calcul (OpenOffice Calc, Microsoft Office Excel et Google Spreadsheet) gèrent ces cas affichant une erreur non bloquante semblable à la "division par zéro": enter image description here

Je pense que c'est le meilleur comportement, car il remplit le champ avec quelque chose de significatif pour l'utilisateur, mais en même temps, il ne "se démarque" pas trop et ne compromet pas l'expérience globale. Comme cela a été souligné dans les commentaires, vous devriez peut-être choisir quelque chose de plus descriptif que #DIV/0, quelque chose comme Div. by zero peut être.

6
Giulio Muscarello

Du point de vue de l'utilisateur, je préférerais une cellule vide, s'il est clair que cette cellule est calculée en divisant Budget par réel. Contexte: L'ajout d'un long texte ajoute beaucoup de bruit à la grille, surtout quand aucun budget n'est fréquent. Vous pouvez ajouter une info-bulle telle que la marque info bleu-vert Excel, qui indique "ne peut pas être calculé, car le budget est nul"), mais même cela peut être exagéré, si tous les utilisateurs sont formés aux calculs.

3
Christian

Soit:

  1. Donnez une cause - quelques mots expliquant pourquoi le calcul ne peut pas être effectué.
  2. Utilisez une chaîne d'erreur - comme d'autres l'ont mentionné, prenez des exemples de feuilles Google et Excel.
  3. Vérifiez le résultat - lorsque vous effectuez le calcul, si le résultat est NaN ou Infinity, affichez N/A à la place.
  4. Ajoutez un lien d'aide - un petit '(pourquoi?)' Ou '(en savoir plus)' à côté de l'erreur qui donne à l'utilisateur une explication rapide de la raison pour laquelle le résultat n'est pas là. Yoh pourrait également inclure une solution ici.

En règle générale, assurez-vous simplement que l'utilisateur sait ce qui se passe avec la cellule.

2
ArtOfCode

J'utiliserais du texte de petite taille disant "DIV0" ou "INF"/",", dans un arrière-plan gris ombré avec un espace négatif autour. Il devrait ressembler à une icône pour montrer que ce n'est pas une valeur tapée ou calculée comme le reste. Mais le message peut toujours être lu clairement afin que la pertinence du problème soit apparente sans avoir à comprendre une icône d'erreur générique.

1
Rich Remer

Pourquoi ne pouvez-vous pas faire une démonstration à certains de vos utilisateurs et leur demander de dire ce qu'ils pensent?

Ce sont deux situations différentes cependant, et un N/A peut être source de confusion. L'infini est bon pour x/0 tant que x n'est pas 0. Regardez le graphique de 1/x. À mesure qu'il se rapproche de 0, le groupe explose à l'infini. En tant que valeur limite, 0/0 est indéterminé, ce qui peut être n'importe quoi. x/x approche 1 lorsque x se rapproche de 0. x * x/x approche 0 lorsque x se rapproche de 0. Comme indice visuel, l'infini signifie que vous devez regarder la source du dénominateur de votre calcul pour voir pourquoi il est 0. NaN (pas un nombre) signifie que vous devez vérifier le numérateur et le dénominateur.

0
user53088

Lorsque le budget est nul et que les chiffres réels sont nuls, la différence (delta) doit être nulle! Il n'y a pas de différence entre 0 et 0.

Lorsque le budget est nul et que les chiffres réels sont élevés, la différence (delta) Je pense que cela a l'air génial en indiquant "Infinity%". Il est véridique, concis, significatif, élégant, non symbolique et non cryptique. Bon cadre, prenez un biscuit!

Lorsque le budget est élevé et que les chiffres réels sont nuls, je suis d'accord avec @CoDEmanX - j'aime l'info-bulle descriptive.

Cependant, vous pouvez constater que la meilleure chose à faire est de réaliser que les gens préféreraient que ces champs soient simplement laissés en blanc - dans les deux cas où le cadre souhaite insérer "infini" et "NaN". Il est difficile pour les humains de digérer le concept de l'infini et du NaN, surtout à côté des autres informations plus agréables que vous montrez. Ils auraient compris pourquoi il était vide assez rapidement, je pense.

Un joli cadre au fait.

0
dave