Retirer données d'un rapport pour faire un matching avec un autre rapport
Bonjour,
Je voudrais automatiser un matching entre des emplois vacants et des personnes qui se portent candidats.
Je reçois un rapport formatté (que je ne peux pas modifier) [Extrait du rapport dans le Sheet "Rapport"] dans lequel je retrouve plusieurs colonnes mais surtout plusieurs lignes.
- Numéro du postulant : numéro unique d'un postulant
- Nom complet du postulant : Nom
- Langue préférée
- Titre du postulant
- Date de naissance
- Age
- Diplôme
- Adresse mail
- Numéro de la candidature
- Date de la candidature du postulant
- Etat en cours
- Texte
- Questions (ici les questions sont réparties en lignes)
- Possèdes-tu un permis B ?
- As-tu une préférence dans la fonction ? (Réponse Oui / Non, si oui, ils doivent compléter la question suivante)
- Je suis intéressé dans les fonctions suivantes (Entre 1 et 15 fonctions au choix, chaque fonction choisie ajoute une ligne au rapport)
- Dans quelle province habites-tu ?
- Près de quelles villes es-tu prêt à travailler ? Entre 1 et 20 choix, chaque ville choisie ajoute une ligne au rapport)
J’ai donc un rapport où le nombre de lignes diffèrent d’un postulant à l’autre en fonction des réponses des postulants.
Je souhaiterais retirer les informations sur les fonctions identifiées et les villes identifiées (+Langue et diplôme) par le postulant pour faire un « pré-matching » avec un rapport où jai toutes les places vacantes dans mon organisation. (Sheet « Vacancy »)
Ce rapport reprend les colonnes suivantes :
- ID fonction (unique)
- Nom fonction (pas relevant pour le lien)
- Type de fonction (mêmes données que les données mentionnées dans « Je suis intéressé dans les fonctions suivantes »
- Langue (doit correspondre à la langue mentionnée dans le rapport)
- Niveau (doit correspondre au niveau de diplôme mentionné (Master ; Bachelor ; CESS ; Aucun)
- Lieu (mêmes données que les données mentionnées dans « Près de quelles villes es-tu prêt à travailler ? »
Lorsqu’on a une correspondance (Type de fonction, Lieu, Langue et diplôme), je souhaiterais que
- Dans le rapport du Sheet « Rapport »
- La ou les fonctions qui sont en adéquation avec les désidératas de l’intéressé apparaissent (l’identifiant unique)
- Dans le rapport « Places ouvertes », l’identifiant unique du postulant apparaisse à coté de la place ou les critères donnés par l’identifiant correspondent aux critère de la fonction.
Selon vous, est-ce possible de faire cela? Je suppose que c'est via VBA mais j'avoue que je vois par ou commencer.
Merci de votre aide.
Bonjour
Une solution PowerQuery (intégré à Excel) après nommage dynamique de Rapport et mise sous forme de tableau structuré de Vacancy
Il suffit d'actualiser le résultat quand une des listes change
Merci beaucoup.
Je vais creuser un peu le Power Query qui a l'air vraiment puissant.
Bonne journée,
Bonjour,
J'ai modifié les données sources d'un des 2 rapports et j'essaie d'effectuer la même manipulation mais lorsque je veux passer à la création via PQ, il me dit qu'une de mes 2 Sheet est en erreur.
Comment est-ce que je peux résoudre ce problème?
Et petit bonus, si jamais cela ne prend pas trop de temps, est-ce possible de refaire la même manip avec le fichier joint?
Merci.
Bonne journée à tous,
Bonjour
Les requêtes utilisent les noms des tableaux structurés (ou bien de plages nommées) donc si tu changes le nom, la requête ne retrouve plus ses petits...
Le tableau structuré s'appelait Vacancy et maintenant RecruitPlan62
Idem pour les titres de colonnes qui sont les noms de champs : Adresse e-mail a changé dans le tableau de l'onglet devenu ORC et tous les titres dans le tableau structuré devenu RecruitPlan62
Par ailleurs afin de déterminer la plage à traiter dans l'onglet Rapport (devenu ORC) il y avait une formule nommée qui n'existe plus.
Là on est sur le B A BA, donc il serait bien que tu
- recrées dans Excel la formule nommée avec le même nom Rapport
- modifies éventuellement le titre de la colonne Adresse e-mail (sinon il faudra adapter la requête Rapport sur toutes les étapes de Type modifié à Lignes groupées)
- supprimes et recrées la requête Vacancy qui n'a que 4 étapes :
- le 1ère est automatique quand depuis une cellule du tableau structuré on utilise Données à partir d'un tableau
- la 2ème, automatique, est à corriger pour typer ID fonction en texte
- l'étape 3 de fusion est à faire en faisant coïncider les nouveaux noms de champs de chaque source
- l'étape 4 permet de choisir les champs à conserver de Rapport
Merci pour ta réponse.
Je ne comptais pas reprendre ta formule tout faite mais bien refaire étape par étape ce que tu avais fait pour pouvoir l'intégrer et le comprendre.
Mon premier souci était le suivant :
Les noms qui s'affichent la ne sont pas les noms de mes onglets et je ne comprends pas pourquoi la ligne 2 est en erreur alors que ce sont les mêmes données que celles utilisées précédemment.
Si j'arrive à comprendre ces 2 choses-là, je pense que je pourrai avancer.
Encore merci pour le coup de main.
RE
On ne part pas du classeur mais de chaque source : tableau structuré pour l'une, plage nommée pour l'autre. Je t'ai bien précisé qu'il fallait recréer la plage nommée comme je l'avais fait.
Regarde déjà la définition de la page nommée et les requêtes existantes dans le 1er fichier pour voir les étapes.
Le mot filter indique un filtre quelque part (quand on utilise un filtre avancé par exemple, Excel crée des noms de ce type) mais ce n'est pas une table.
Je vois que la table RecruitPlan62 contient des cellules en erreurs : cela va aussi poser problème si ces colonnes ont utilisées par PowerQuery
On demande toujours de joindre un fichier représentatif : quand ce n'est pas le cas on part sur de mauvaises bases et tout est à refaire...
Si tu recrée la plage nommée, tu peux directement copier la requête Rapport d'un classeur à l'autre. Restera juste le problème du champ mail pour lequel j'ai expliqué la marche à suivre.
Bonsoir,
Merci pour toutes les explications. J'ai pu, je pense, recréer la manip pour arriver à un résultat.
Par contre, je trouve bien des correspondances mais seulement quelques unes des correspondances apparaissent dans le tableau. A première vue, il en manque vraiment beaucoup.
Exemple:
- Postulant : kzztk, Zkltbn, avec ses choix, il devrait au minimum correspondre aux fonctions 449 à 466 mais il ne se retrouve pas dans les matchings.
Est-ce possible de me dire ce que j'ai mal fait afin de pouvoir avoir un matching avec toutes les correspondances qui apparaissent?
Encore merci pour l'appui et les conseils.
Bonne soirée
Bonjour
Tu n'as pas créé la plage nommée par formule : si le nombre de lignes évolue la requête ne suivra pas...
kzztk, Zkltbn n'a pas le même diplôme sur toutes les lignes car entre la ligne 2 où apparait son nom et la ligne 91 où apparait une autre personne il y a 3 infos diplôme différentes ce qui parait curieux pour une même personne (lignes 2, 32 et 62)
Dans son cas les lignes Aucun ne correspondent pas aux villes des postes des fonctions que tu cites ce qui explique qu'il n'est pas sélectionné.
Je n'avais pas vu que Aucun était un diplôme possible pour certaines fonctions :
De 2 choses l'une :
- ou on cherche Aucun des 2 côtés (cas actuel)
- ou on considère qu'un haut diplômé peut postuler aussi à ce type de poste et cela nécessite alors un traitement particulier : dans le cas où c'est Aucun, il faut croiser sur moins de champs donc faire 2 sous-requêtes :
- une pour les cas où le diplôme est pris en compte (les lignes de fonctions avec diplôme autre qu'Aucun)
- une autre pour Aucun où on ne tient plus compte du champ diplôme du postulant