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

Deski Discussion :

condition de date dans une formule [VxiR2]


Sujet :

Deski

  1. #1
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut condition de date dans une formule
    Bonjour à tous,

    J'ai une requête qui me ramène des ID et des dates (et d'autres champs, mais on s'en fout... ) <ID> et <Date> sont deux objets de type dimension.
    Pour faire simple, disons que je veux compter les ID dont la date est passée :
    1. Dans une cellule d'un tableau, je saisi la formule =Nombre(<ID>).
      Ca marche : j'ai le nombre total d'ID.
      .
    2. J'ajoute un filtre complexe au tableau du type <Date> < Date actuelle()
      Ca marche : j'ai le nombre total d'ID dont la date est passée.
      .
    3. Mais si je saisi directement la formule =Nombre(<ID>) Où (<Date> < Date actuelle())
      BO m'indique une erreur de syntaxe...

    Evidement je pourrais être moins perfectionniste et me contenter de la solution avec le filtre complexe plutôt que d'essayer d'insérer ma condition dans ma formule... Sauf que, en vrai, j'ai besoin de présenter sur les différentes colonnes d'un même tableau, le nombre total d'ID, le nombre d'ID de l'année en cours, le nombre d'ID du mois en cours et celui du mois dernier.

    Si quelqu'un a une suggestion je suis prenneur...

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    C'est logique, l'opérateur Où est un opérateur de contexte qui doit s'appliquer à un indicateur, pas une dimension.

    Je vois deux possibillités de résoudre ton problème
    1. Tu as accès à l'univers, tu peux alors définir un indicateur "compteur" qui donne 1 pour chaque ID.
      Tu peux ensuite dans ton rapport lui appliquer l'opérateur contextuel "Où"
    2. Tu crée une formule "ID_Filtré" avec comme valeur (0 doit être une valeur qui n'existe jamais dans la colonne ID)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      = Si <Date> < Date actuelle() Alors <ID> Sinon 0
      Il ne te reste plus qu'à afficher le résultat par la formule
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =Nombre(<ID_Filtré>) - 1
      (on enlève 1 pour ne pas compter la valeur bidon)

  3. #3
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Pour l'instant je ne requête pas sur un univers mais sur une table de donnée Excel.

    Mais j'ai exactement le même problème si je remplace mon Compte(<ID>) par un indicateur... (je viens de tester avec un indicateur de montant)

  4. #4
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Re,
    Avec un indicateur, la fonction Nombre() ne fait pas vraiment sens, il faut plutôt utiliser une fonction d’agrégation comme un Somme()
    Attention aussi à la syntaxe du Où : cet opérateur s'applique à un indicateur et la condition qui suit doit être entre parenthèses. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme(<Indicateur> Où (<Dimension>="oui") )

  5. #5
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Je n'ai pas mis de fonction nombre devant mon indicateur.

    A priori, avec un indicateur dont la fonction de projection par défaut est une somme, pas besoin de rajouter de fonction somme devant.


    Edit :
    par acquis de conscience je viens quand même d'essayer, ça marche pas mieux !

  6. #6
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    OK, quelle est la syntaxe exacte qui te pose problème avec l'indicateur ?

  7. #7
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =<Montant> Où (<Date> < DateActuelle())
    il me renvoie erreur de syntaxe.


    Par contre, ça fonctionne avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =<Montant> Où (<Date>='01/04/2011')

  8. #8
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    OOps ! J'ai loupé ça... l'opérateur Où ne fonctionne qu'avec une égalité.
    Le mieux est donc de définir une variable "Test" avec la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Si <Date> < DateActuelle() Alors 1 Sinon 0
    Puis d'afficher la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =<Montant> Où (<Test> = 1)

  9. #9
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    ça marche !
    un grand merci à toi.



    Remarques subsidiaires :
    • avec un objet de type dimension agrégé par la fonction Nombre(), ça marche aussi bien qu'avec un indicateur.
    • la syntaxe Où (<date> = DateActuelle()) est quand même refusée pourtant elle s'appuie sur une égalité simple

  10. #10
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Super ! Et merci à toi pour les remarques subsidiaires... j'en prends note, ça peut servir.

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

Discussions similaires

  1. [XL-2003] Conversion nombre en date et ajout dans une formule
    Par clem71 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2009, 10h26
  2. ajouter une condition dans une formule
    Par NEC14 dans le forum Excel
    Réponses: 9
    Dernier message: 14/10/2008, 14h51
  3. utiliser un format "date heure" dans une formule
    Par Tonton Phil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2007, 14h37
  4. Afficher la date du jour dans une formule
    Par Yodaf dans le forum SharePoint
    Réponses: 3
    Dernier message: 06/08/2007, 15h15
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

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