IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

TCD vers un cube SSAS - Champ numérique de dimension considéré comme du texte pour le tri [XL-2016]


Sujet :

Conception

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 32
    Points
    32
    Par défaut TCD vers un cube SSAS - Champ numérique de dimension considéré comme du texte pour le tri
    Bonjour,

    Un cube SSAS possède dans une dimension un attribut de type Integer (dimension Magasin, attribut Surface de vente, en m²).

    Dans Excel, un TCD pointe vers ce cube.

    Lors d'un tri croissant sur cette dimension numérique, l'ordre affiché est suivant un type Texte :
    1050
    2500
    840
    980

    au lieu d'un ordre suivant un type numérique :
    840
    980
    1050
    2500

    [Mon analyse :
    En capturant la requête MDX depuis Excel vers SSAS, l'on obtient :
    SELECT {AddCalculatedMembers({[Magasin].[Surface de vente].[Surface de vente].Members})} DIMENSION PROPERTIES MEMBER_TYPE ON COLUMNS
    FROM [Ventes]
    CELL PROPERTIES CELL_ORDINAL

    Le résultat est un recordset sans enregistrement avec en en-têtes de colonnes la liste des valeurs. Voir la pièce jointe.
    Je comprend qu'interroger le cube de cette manière entraîne Excel à considérer cette liste de valeurs comme du texte car la propriété NameColumn de la dimension est forcément de type WChar.
    ]


    Comment faire pour qu'Excel considère ces chiffres comme du numérique au moment de trier ?
    (Forcer le format Numérique des cellules ne fonctionne pas)

    Une idée ?
    Images attachées Images attachées  

  2. #2
    Membre régulier
    Femme Profil pro
    Responsable audit interne
    Inscrit en
    Février 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable audit interne
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 67
    Points : 91
    Points
    91
    Par défaut
    Bonjour,
    Si le type de base est WChar, Excel le prendra forcément comme du texte, donc modifier le format d'affichage côté excel ne changera rien.
    A mon avis, il faudrait recourir à la fonction CNUM pour convertir le texte en nombre côté Excel, si on ne peut pas modifier le type de départ.

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Pas le niveau pour répondre mais peut-être une piste. En faisant quelques recherche il apparait des fonction utilisable dans les requêtes SQL, il s'agit de CAST et CONVERT. Il serait peut-être possible de les utiliser dans la requête SSAS...

    Autre piste, les cube semblent avoir une méthode permettant l'utilisation de champs calculés complexes. Il serait peut-être possible de générer un champs calculé capable de transcrire du texte en valeur numérique puis d'utiliser ce champs lors de la requête.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 32
    Points
    32
    Par défaut
    @Finndelle74
    Dans un TCD, quand on sélectionne une dimension du cube, pour aller l'afficher en ligne par exemple, je ne vois pas où la fonction CNUM pourrait être mentionnée car on sélectionne le champ à la souris par drag-and-drop. Une idée ?

    @Qwazerty

    - Bien qu'utilisant le SELECT et le FROM, il ne s'agit pas de SQL mais du langage MDX pour interroger un cube. De plus, Excel ne permet pas de modifier ce code, hélas !
    - "les cube semblent avoir une méthode permettant l'utilisation de champs calculés complexes". Oui, il s'agit de "calculs MDX", un script défini dans le cube qui génère des champs calculés à la volée au moment de la réception de la requête MDX. C'est effectivement une voie possible, mais cela modifiera-t-il pour autant la manière dont Excel génère la requête MDX (car c'est Excel qui demande des libellés) ?
    Je ne suis pas spécialiste de cette partie précise, je vais voir avec mon développeur BI.

    Merci pour vos retours !

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu es en Excel 2016. Tu as donc Power Query (onglet Données/Récupérer et transformer les données)...

    Si tu récupères les données du cube via PowerQuery, tu auras des possibilités de transformation de données avant de récupérer la table pour créer le TCD. C'est peut-être une piste.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 32
    Points
    32
    Par défaut
    Super idée !
    On va la creuser...

  7. #7
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Citation Envoyé par jacquesv Voir le message
    Le résultat est un recordset sans enregistrement
    Ce recordset ne peut-il pas être modifier (voir copier et modifier la copie) pour y inclure un champs supplémentaire où faire le transtypage? Ca sera peut-être un peu lourd si la quantité de données est importante par contre.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  8. #8
    Membre régulier
    Femme Profil pro
    Responsable audit interne
    Inscrit en
    Février 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable audit interne
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 67
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par jacquesv Voir le message
    @Finndelle74
    Dans un TCD, quand on sélectionne une dimension du cube, pour aller l'afficher en ligne par exemple, je ne vois pas où la fonction CNUM pourrait être mentionnée car on sélectionne le champ à la souris par drag-and-drop. Une idée ?
    Je pensais à créer un 2ème tableau qui récupèrerait les données du TCD. Pas du tout optimisé je sais, mais je ne sais pas faire mieux dans ce cas !

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 32
    Points
    32
    Par défaut
    @Pierre Fauconnier
    Par Power Query je n'y suis pas arrivé (pas trouvé de provider SSAS parmi les providers proposés sur mon poste, bizarre...).
    En revanche, par Power Pivot, oui !
    - Je créé un Modèle avec comme source de données le cube (requête MDX via le concepteur).
    - Dans ce modèle j'ajoute une colonne calculée avec comme formule :
    - Je créé un TCD avec comme source ce modèle, au lieu de choisir la colonne native (au format Texte), je choisi la nouvelle colonne. Voir la copie d'écran du résultat.
    Donc techniquement c'est possible : je vais remonter cette technique aux utilisateurs, à voir comment ils vont s'en sortir car c'est une technique un peu avancée.

    @Qwazerty
    Je ne peux pas accéder à ce recordset. J'ai pu en générer un de la manière suivante :
    - mise en place d'une trace à l'aide du Profiler SQL Server,
    - manipulation dans Excel et capture du code MDX (SELECT...) par le Profiler,
    - copier/coller de ce code MDX dans Management Studio et exécution de ce code vers le cube : le recordset s'affiche (c'est comme cela que j'ai récupéré la copie d'écran), et cela m'a permis de comprendre.

    "pour y inclure un champs supplémentaire où faire le transtypage" : c'est la démarche proposée par Pierre Fauconnier. Sauf que je l'ai mise en oeuvre en utilisant Power Pivot au lieu de Power Query (voir plus haut).

    @Finndelle74
    "Je pensais à créer un 2ème tableau qui récupèrerait les données du TCD."
    C'est effectivement comme cela que les utilisateurs s'en sortent actuellement, mais ils trouvent cela "pas beau" et un peu lourd.

    En images :
    - déclaration de la requête vers le cube via l'assistant (je ne parle pas le MDX couramment ;-),
    Nom : requete_MDX.png
Affichages : 628
Taille : 29,5 Ko

    - ajout de la colonne calculée "Surface de vente (INT)" à l'aide de la fonction VALUE (équivalente à CNUM) basée la colonne initiale de type texte,
    Nom : Fonction_VALUE.png
Affichages : 624
Taille : 56,7 Ko

    - le TCD basé sur le modèle en utilisant la colonne calculée de type entier, donc le tri est correct.
    Nom : tri_OK.png
Affichages : 677
Taille : 56,6 Ko

    Au final c'est dommage que Microsoft ne gère pas mieux la chose, d'autant plus que le besoin a l'air classique.

    Je vous remercie pour votre aide ! ... et en particulier Pierre qui a déclenché la solution !

    Je déclare ce fil résolu.

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut Jacques,

    Grand merci pour ce retour détaillé sur la solution trouvée et sur les autres tentatives.

    Sympa
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Empêcher l'accès aux champs d'un cube SSAS
    Par italia57 dans le forum Excel
    Réponses: 0
    Dernier message: 03/03/2015, 10h50
  2. [Débutant] Fichier Excel: valeurs numériques considérées comme du texte
    Par sassélesas dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/06/2014, 17h04
  3. Réponses: 6
    Dernier message: 01/07/2013, 16h45
  4. [WD12] Masque Affichage conservé d'un champ numérique vers texte
    Par zouzoukha dans le forum WinDev
    Réponses: 2
    Dernier message: 16/01/2010, 18h43
  5. Formatage d'un champ numérique
    Par portu dans le forum Bases de données
    Réponses: 8
    Dernier message: 07/07/2004, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo