Hello !
Tout d'abord, merci de m'aider à mieux comprendre BO. Hier, comme je n'arrivais pas à comprendre le multi-univers, j'ai commencé par la base et j'ai passé la journée à travailler sur des exemples plus simples. J'ai donc testé les formules de somme et de comptage sur une seule requête, ça fonctionne . J'ai ensuite rebasculé sur mon rapport multi-univers. Voici où j'en suis.
J'ai testé comme tu dis de partir du tableau des données sources. Je n'ai mis aucun filtre sur mon rapport. Et j'ai ajouté mes colonnes au fur et à mesure en regardant le nombre de lignes total.
Tableau 1 (sans la dimension fusionnée ALL_ID):
Je mets la colonne A_ID
=> j'ai 44 lignes, ça me parait logique
J'ajoute la colonne A_dosage
=> j'ai 44 lignes, ça me parait logique
J'ajoute la colonne ALL_dosage (indicateur dont la formule est = [A_dosage] )
=> j'ai toujours 44 lignes, ça me parait toujours logique
Tableau 2 (sans la dimension fusionnée ALL_ID):
Je mets la colonne B_ID
=> j'ai 480 000 lignes, ça me parait logique
J'ajoute la colonne B_age
=> j'ai 480 000 lignes, ça me parait logique
J'ajoute la colonne ALL_age (information dont la formule est = [B_age] et la dimension associée est B_ID)
=> j'ai 480 000 lignes, ça me parait logique
Tableau 3 (avec la dimension fusionnée ALL_ID):
Je mets la colonne ALL_ID
=> j'ai 480 000 lignes, ça ne me parait pas logique
J'ajoute la colonne ALL_dosage
=> j'ai 480 000 lignes, ça ne me parait pas logique
J'ajoute la colonne A_dosage
=> j'ai 44 lignes, ça ne me parait pas logique
De tout ça, voici ce que j'en conclus: le tableau 3 prouve que mon filtre dosage non nul de ma requête A ne s'applique pas sur ma dimension fusionnée ALL_ID. En mode rapport, BO ne garde pas uniquement les lignes communes à mes 2 requêtes mais toutes les lignes de chaque requête, et c'est en fonction des colonnes que je mets dans mon tableau que les filtres se font (selon si je prends une variable de ma requête A filtrée ou si je prends un autre champ). Correct ?
Quand je fais des calculs,
si je fais: =Nombre([A_ID]), j'obtiens 44
si je fais: =Nombre([ALL_ID]) Où (Non(EstNul([A_ dosage]))), j'obtiens 44
si je fais: =Nombre([ALL_ID]) Où (Non(EstNul([ALL_ dosage]))), j'obtiens 480000
Si je prends A_dosage, BO comptera toujours 44 lignes car A_dosage existe seulement pour 44 ID, tous les autres ID n'auront pas de A_dosage (même vide). Correct ?
Si je prends ALL_dosage, BO comptera toujours 480 000 lignes, car ALL_dosage est un indicateur créé après coup et donc BO met ce champ pour tous mes ID, même si ce champ est vide. Correct ?
Et c'est donc à se demander quel est l'intérêt de créer un indicateur ALL_dosage. Et bien ,je crois avoir vu un intérêt.
Si dans un tableau, je tape la formule =Nombre([ALL_ dosage]), j'obtiens les bons chiffres.
Si dans un tableau, je tape la formule =Nombre([A_ dosage]), j'obtiens les mauvais chiffres car ça fait comme un distinct où ça ne compte qu'une fois les valeurs identiques (exemple: en vrai, j'ai 16 valeurs, mais ça n'affiche que 15 car j'ai 2 valeurs identiques).
Donc quand on veut faire des calculs (comptage ou somme ou autre), il ne faut pas les faire sur la dimension même si c'est un format nombre, il faut OBLIGATOIREMENT la transformer en indicateur. Correct ?
Dernier point concernant les informations créées: il faut leur associer une dimension: comment choisir cette dimension? Par exemple, j'ai mon champ B_age. J'ai créé une information ALL_age dont la formule est = B_age.
Si j'associe la dimension B_ID à ALL_age, tout est ok.
Si j'associe la dimension ALL_ID à ALL_age, tout est ok.
Si j'associe la dimension B_age à ALL_age, tout est ok.
Donc comment choisir ?
Désolée pour ce post très long, mais pas si simple de résumer ses questions quand on a du mal à comprendre .
Merci +++ pour les conseils.
Partager