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

Excel Discussion :

recherchex, si.conditions et etc


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut recherchex, si.conditions et etc
    Bonjour à tous,

    Je suis en train de récupérer des données d'une base de donnée 1 référente car structurée (env. 5000 lignes) vers une base de données 2 moins rigoureuse (env. 390 lignes) qui se trouvent sur 2 feuilles d'un même classeur.
    Pour ça je travaille en croisant des combinaison de 2 critères (localité*montant, nom établ.*localité) cependant en vérifiant les retours via les totaux dans les bases 1 et 2, il s'avère qu'ils diffèrent. Je crois qu'il y a avec la fonction SI.CONDITIONS des retours qui se trouvent doublés.

    Voici la ligne de code développée:

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    =SIERREUR(SI.CONDITIONS(
    RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=X2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1)<>0;RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=X2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1);
    RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=S2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1)<>0;RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=S2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1);
    RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$B$6:$B$396=Q2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1)<>0;RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396=AP2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$B$6:$B$396=Q2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1);
    RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=X2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$B$6:$B$396=Q2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1)<>0;RECHERCHEX(1;('SIEC_SIEC_Proj_Eie_2021 03'!$C$6:$C$396=X2283)*('SIEC_SIEC_Proj_Eie_2021 03'!$B$6:$B$396=Q2283);'SIEC_SIEC_Proj_Eie_2021 03'!$O$6:$O$396;0;1)
    );0)

    La question est liée au code mais aussi à une expérience de récupération entre une base de donnée rigoureuse et une seconde moins rigoureuse.
    Merci de l'attention,
    Bien à vous

  2. #2
    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.

    il serait à mon avis utile de mettre une copie d'écran d'au moins une partie des tables, car ici, à moins de jouer au devin...

    Tu parles de RECHERCHEX, donc tu as 365, j'imagine (au passage, merci de renseigner ta version dans le tag de version).
    • tu pourrais probablement t'orienter vers Power Query.
    • La première chose que je ferais serait de passer tout cela en tableaux structurés, ne serait-ce que pour rendre les formules plus digestes.
    • Si pas de tableaux structurés, il serait intéressant de renommer les onglets avec des noms très courts pour raccourcir les formules et les rendre plus lisibles.
    • Essayer de caler les tableaux en A1 (aller à la ligne xxx pour trouver la première donnée n'est pas ce qu'il a de plus facile, à mon avis).
    • Commencer par travailler sur un petit volume de données, surtout avec des SI.CONDITONS bourrés de RECHERCHEX => ça bouffe des ressources, ces petites bêtes)
    • Sérier les problèmes que tu risques de rencontrer (dates aux mauvais formats, etc, ...)




    Il y a probablement d'autres choses auxquelles je ne pense pas comme ça, parce c'est un travail intimement lié aux données manipulées. Cela dit, je ne comprends pas ce que tu veux dire lorsque tu parles de passer d'une base "rigoureuse" à une base "moins rigoureuse"
    "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...
    ---------------

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Bonjour Pierre,

    Merci du retour. Je suis bien sous office365. Le tag de ma version est à chercher dans le profil de mon compte? Je n'ai pas réussi à trouver ça.

  4. #4
    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
    Le tag de version peut être précisé lorsque tu crées la discussion. Tu as une liste déroulante qui permet de saisir la version (je l'ai fait pour cette discussion).

    Il serait à mon avis judicieux d'anonymiser les données (au moins les noms d'établissements et les données qui permettent une identification des lieux ou des personnes).

    Pour ta demande, sans savoir ce que tu souhaites transférer, pourquoi, comment, avec quelles modifications (entre ta base "rigoureuse" et ta base "moins rigoureuse"), il sera toujours assez mal aisé de répondre. L'idée serait de dire: Voilà ce que j'ai au départ (un petit jeu de données suffit normalement) , voilà ce que je voudrais à l'arrivée... Je doute qu'un SI.CONDITONS incluant 4 ou 5 RECHERCHEX soit une solution efficace sur un grand nombre de données. Peut-être pourrais-tu nous expliquer la situation sous forme de "cahier des charges" sans trop de jargon Excel au départ
    "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...
    ---------------

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mai 2020
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2020
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Après une inspection rapprochée de la base de donnée, j'ai effectivement des redondances des valeurs appelées.

    La formule utilisée pour aller chercher les informations serait plus simple avec un seul critère (montant investissement, colonne AP) qui est reconnue dans la base de donnée 2 où l'on récupère les informations utiles. On a alors cette formule :
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEX(AP4995;'SIEC_SIEC_Proj_Eie_2021 03'!$E$6:$E$396;'SIEC_SIEC_Proj_Eie_2021 03'!$P$6:$P$396;0;1)
    basée sur le critère numérique (colonne AP d'un montant avec deux chiffres après la virgule) qui peu s'avérer être appelé à plusieurs reprise dans la base de donnée rigoureuse.

    Dans un premier temps, l'idée est d'abord de construire un outil de contrôle pour s'assurer que toutes les informations appelées dans la base de données 2 ont bien été toutes collectées dans la base de donnée 1. Pour celà il faudrait enlever les valeurs qui sont appelées plusieurs fois afin que le total de contrôle des deux bases de donnée soient comparables pour détecter tout manquement.

    Je pense que c'est à faire avec un NB.SI.ENS mais je n'arrive pas à me faire une idée de la forme qu'elle doit prendre de sorte qu'elle teste tous les occurrences de chaque montant existant dans la colonne AP? et ensuite divisé chaque montant de cette colonne par le nombre d'occurrence précisée par la fonction NB.SI.ENS pour vérifier la bonne correspondance entre les totaux des deux bases de données

    Je passe sans doute à coté de quelque chose...

Discussions similaires

  1. rechercheX à plusieurs conditions
    Par xirix dans le forum Excel
    Réponses: 15
    Dernier message: 07/04/2021, 17h57
  2. [XL-2013] Copier coller avec condition nombre 1 ou 2 ou 3 etc
    Par nicom77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/02/2018, 09h01
  3. Recopie sous conditions d'une cellule avec boucle, etc..
    Par linab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2016, 09h07
  4. Réponses: 4
    Dernier message: 20/11/2012, 12h54
  5. Affichage ligne avec condition dans /etc/passwd
    Par mzt.insat dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 17/04/2006, 21h25

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