ANS-0019 · RECHERCHES ENREGISTRéES ET FORMULES

Comment calculer les pourcentages des colonnes récapitulatives dans les recherches enregistrées de NetSuite ?

Découvrez comment calculer correctement des indicateurs exprimés en pourcentage à partir de données agrégées issues des recherches enregistrées dans NetSuite, en utilisant des structures de formules spécifiques.

Solution courte

Pour calculer les pourcentages des colonnes agrégées dans les recherches enregistrées de NetSuite, utilisez les constructions SUM(CASE WHEN ... THEN {Montant} ELSE 0 END) tant pour le numérateur que pour le dénominateur. Cette approche garantit que l’agrégation a lieu avant la division, ce qui permet d’obtenir des résultats de pourcentage précis pour les données agrégées, tout en gérant les éventuelles erreurs de division par zéro.

Scénario

Les utilisateurs rencontrent souvent des difficultés lorsqu’ils tentent de calculer un pourcentage à partir de deux colonnes agrégées dans une recherche enregistrée NetSuite. Bien que les pourcentages des lignes individuelles puissent sembler corrects, le simple fait d’additionner ces pourcentages dans une vue agrégée conduit à des résultats inexacts. Cela se produit généralement parce que le calcul du pourcentage doit s’effectuer sur les totaux agrégés, et non sur les lignes individuelles avant l’agrégation.

Solution

Pour calculer avec précision les pourcentages des colonnes agrégées, l’agrégation doit s’effectuer au sein même de la formule, avant la division. Cela implique d’utiliser SUM(CASE WHEN ... THEN {Montant} ELSE 0 END) tant pour le numérateur que pour le dénominateur. Il est également essentiel d’intégrer la fonction NULLIF afin d’éviter les erreurs de division par zéro. Vous trouverez ci-dessous des exemples de formules illustrant cette approche : (SUM(CASE WHEN {account}'440050 Culling of Bins' THEN {Amount} ELSE 0 END)*-1)/nullif(SUM(CASE WHEN {accounttype}'Income' THEN {Montant} ELSE 0 END), 0) SUM(CASE WHEN {compte}'440050 Tri des bacs' THEN {Montant} ELSE 0 END) sum(case when {compte} '611010 Heures supplémentaires' then {Montant} else 0 end)/nullif(sum(CASE WHEN {compte} '611000 Salaires' THEN {Montant} SINON 0 FIN), 0) Arrondir(SOMME(NVL({quantité expédiée/reçue}, 0)) / NULLIF(SOMME(NVL({quantité}, 0)), 0), 2)

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Recherches enregistrées et formules

Parler à un consultant