
SAGE BI - INSIDE
OPTIMISATION
Sage BI vous permet d'obtenir très facilement des données statistiques en provenance d'une base de données Sage. Cette facilité apparente cache une réelle complexité au niveau des requêtes. Et c'est obligatoire. En effet, couvrir l'ensemble des possibilités de requêtes nécessite de gérer une multitute de cas. D'où une lourdeur résultante et surtout pénalisant en temps de calcul.
Mais voyons au travers d'un exemple comment créer un état de reporting plus souple et surtout plus rapide à générer.
Partons d'une demande simple, courante: vous souhaitez obtenir les statistiques de vente par produit sur une année et voir s'il existe une saisonnalité de produits en lstant les ventes mois par mois.
Plusieurs approches sont possibles pour concevoir ce tableau, mais nous allons utiliser une des plus simples, à savoir une requête de base pour obtenir la liste des ventes sur l'année (un assistant liste) au format Office suivi de 12 requêtes (assistants cellule) pour consolider le tableau.
Requête de base
|
M1
|
M2
|
M3
|
M4
|
M5
|
M6
|
M7
|
M8
|
M9
|
M10
|
M11
|
M12
|
AL
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
AC
|
Première étape, la requête de base :
Un simple assistant liste basé sur le connecteur ventes. Ce premier tableau est au format "Office" (à préciser dans l'onglet Options), ce qui va nous permettre d'acoller les différents assistants cellule.
Voyons maintenant les assistants cellule :
Toujours basé sur le connecteur ventes, la plage de date est réduite au mois analysé et un lien est fait sur la référence produit extraite par le tableau principal.
A répéter 12 fois.
Parfait, le tableau est en place, passons au rafraichissement de la feuile et ... 4 minutes 15' plus tard c'est fini. Pour ce qui est de la volumétrie des données de ce jeu de test, nous avons 1 700 produits mouvementé sur la période (pour 63 000 lignes de vente).
Utilisons maintenant une approche différente.
Une première requête inchangée, à savoir notre assistant liste de base (Toujours au format Office).
Dans un deuxième onglet, nous allons placer un assistant liste au format Office qui va nous ramener les ventes pour la période donnée par article et par mois.
Pour retrouver ces données depuis notre tableau de base, nous allons devoir créer une clef unique :
=[@[Référence Article]]&"#"&[@Mois]
Le tableau va se présenter sous cette forme
Pour chaque ligne nous aurons ainsi une clef unique (Note : le caractère # est utilisé ici afin de séparer la référence du mois et ne pas avoir le risque qu'une référence combinée à un numéro de mois pourrait correspondre à une autre référence - # étant un caractère interdit pour une référence Sage).
Si vous travaillez sous Office 365, vous pourrez utiliser RECHERCHEX(), sinon il conviendra de récupérer après cette clef la quantité ( =[@[Qté Vendues]] suffira et permettra d'utiliser un classique RECHERCHEV() )
Retour sur notre tableau de base. Il ne reste plus qu'à consolider les données, ce qui nous donnera par exemple pour le mois de janvier :
=RECHERCHEX([@[Référence Article]]&"#1";TableauD5[Colonne1];TableauD5[Qté Vendues];"")
Pour rappel :
- [@[Référence Article]]&"#1" permet de confectionner la clef à rechercher dans le second onglet
- TableauD5[Colonne1] c'est la colonne dans laquelle nous avons calculé la clef unique sur le second tableau
- TableauD5[Qté Vendues] est la quantité que nous devons remonter dans le tableau principal.
- "" est là pour remonter une chaine vide dans le cas où aucune valeur n'a été retrouvée.
Les 12 colonnes sont consolidées, rafraichissement du tableau ... en 4 secondes ! Voilà qui devient parfaitement exploitable.
Que devons nous en conclure ?
Gardez à l'esprit que plus le nombre d'éléments est faible, plus le traitement est rapide. A facteurs identiques, le traitement d'une instruction SQL simple prend moins de temps que le traitement d'une instruction SQL complexe. De même, les requêtes portant sur une quantité de données plus importante peuvent demander plus de temps qu'avec une quantité de données moindre si tous les autres facteurs sont égaux.
L'utilisation des assistants cellule implique des temps de traitements plus importants du fait de la compléxité des requêtes induites.
Pensez-y sur vos prochains tableaux B.I afin d'augmenter leur souplesse d'utilisation et obtenir des temps de rafraîchissement bien plus raisonnables.

EXCEL
RECHERCHEX()
La fonction RECHERCHEX() apparue dernièrement permet de compléter et d'améliorer grandement les fonctions RECHERCHEV() et RECHERCHEH().
Aujourd'hui, RECHERCHEV() reste après plus de 34 ans la 3ème fonction la plus utilisée après SOMME() et MOYENNE().

INFOS
Mentions légales
Pour la société : PCI EXPERT
Activité : Programmation Informatique (6201A)
Siège social : 21b rue des Anciennes Ecoles, 33600 PESSAC
Forme juridique : SAS
Immatriculation RCS : Bordeaux B 918 702 085