Microsoft 365 Aide sur formule matricielle complexe

J

jip31

Guest
Bonjour
L'onglet "Recap" du fichier joint récupére automatiquement des données saisies dans Forms
Les colonnes J et N récupèrent des informations liées au type de panne et les colonnes I et M des informations liées à la population impactée
Je peux donc avoir un jour la population "Guich" en colonne M et la poulation "COB" en colonne I et inversement le lendemain
C'est la même chose pour le type de panne
Je voudrais donc récupérer dans l'onglet "Suivi" les données si les 2 conditions suivantes sont respectées
1) Je ne veux récupérer que les lignes correspondant à la population "Guich"
Donc si dans la colonne I ou dans la colonne M de l'onglet "Recap", je veux récupérer cette valeur dans la colonne E de l'onglet "Suivi"
2) Je ne veux récupérer que les lignes correspondant à la population "Guich" que si en colonne J ou N le type de
panne est "Applicatifs" A copier dans la colonne F de l'onglet "Suivi". S'il est réseau, je ne veux pas récupérer la ligne
Dernière chose, s'il y a bien un évènement correspondant à ces 2 conditions, je veux que le contenu des cellules E, F, G, et H de l'onglet "Recap" soit copiées dans les colonnes
A, B, C et D de l'onglet "Suivi"
NB: Quand je parle de ne pas récupérer les lignes, cela veut dire qu'elle ne doit pas s'afficher du tout (Je ne veux pas de filtre)
Merci
 

Pièces jointes

  • Bureau TEST.xlsx
    25.4 KB · Affichages: 24

Amilo

XLDnaute Accro
Bonjour à tous,

@jip31 , je ne me suis pas penché sur le sujet depuis mon dernier message mais j'avais déjà préparé une 2ème version plus simple que la précédente et en tenant compte notamment :
- de la casse des mots
- d'un teste avec COB et COB dans les 2 colonnes pour ne pas les prendre même si nous avons "Applicatifs" par ailleurs

Comme je n'avais pas tout compris, je doute que cela réponde mais je poste quand même.
Sinon, j'espère que les nouvelles propositions de job75 et de Hasco répondent à votre demande.

Cordialement
 

Pièces jointes

  • Population_Pannes_PQ_jip31_V2 .xlsx
    36.7 KB · Affichages: 2
J

jip31

Guest
Bonjour,

La plage Data est un tableau structuré qui normalement s'étend automatiquement !
Les lignes que vous avez ajoutées sont hors de ce tableau.
cliquez dans une cellule sous la ligne d'entête du tableau. (ligne 2)
Un onglet apparaît à droite du ruban 'Création de tableau'
A gauche de cet onglet, sous la zone où apparaît le nom du tableau 'Data' vous avez un bouton 'Redimensionner' le tableau. Cliquez et modifiez le numéro de dernière ligne (6) du tableau.

Voyez ce tutoriel sur les tableaux structurés :


J'ai testé la requête, sans modification, que je vous ai donnée précédemment sur vos nouvelles lignes.



Personnellement ce genre de phrase qui dit une chose et son contraire est pour moi incompréhensible à 100% . Après lecture je ne sais toujours pas si Type de panne peut contenir "WIFI;Applicatifs" ou seulement "Applicatifs". Le début de la phrase dit l'un, la fin dit l'autre !?


Alors voyez dans le fichier si le test de la requête fonctionne (étape de filtrage), sinon, modifiez le à votre guise.

S'il faut remplacer les valeurs de la colonne "Type de panne" par uniquement "Applicatifs" , regardez comment est créée la ligne de remplacement pour les valeurs de la colonne "Population impactée".

Essayez également de normaliser vos titres de colonnes "Type de panne 2" est différent de "Type de panne2"
Enfin sachez que Power Query est sensible à la casse "GUICH" est différent de "Guich"

Pour moi je m'arrêterai là.
Bonjour
Merci pour l'explication de la plage data
après je galère car j'essaye de faire un mix entre la solution de chris et la votre car il y a des choses qui sont bonnes de chaque côté mais séparément
je m'explique
dans votre solution, la condition sur le type de panne est bien prise en compte puisque par exemple j'ai dis que si population = Guich et panne = WIFI, alors on ne prend pas la ligne en compte ce qui est bien le cas (voir ligne 5)
en revanche le type de panne que vous remontez n'est pas le bon
si par exemple en "Poupulation impactée2" (colonne M) je dis remonter le "Type de panne2" (colonne N)
Or la c est la colonne J qui remonte
Merci quand même pour votre aide
 

Hasco

XLDnaute Barbatruc
Repose en paix
si par exemple en "Poupulation impactée2" (colonne M) je dis remonter le "Type de panne2" (colonne N)
Or la c est la colonne J qui remonte
Re,

Je crois qu'il faut que vous mettiez ceci en ordre dans votre tête. Ne vous focalisez pas sur ce que vous voyez comme résultat dans Type de panne; Est-ce que ce sont les bonnes lignes qui sont remontées par la requête ?

Une fois que les bonnes lignes sont sélectionnées, on peut afficher ce qu'on veut dans la colonne Type de panne, comme ce que j'ai fait pour la colonne "Population impactée" en remplaçant COB par GUICH

Et comme le dis @chris que comptez vous faire des autres types de panne ?

cordialement

[Edition] Appliquée à vos données du post#6 la requête du post #3 donne :
1667220812247.png

[/edition]

Si ce sont les bonnes lignes, il faut simplement remplacés COB par GUICH et Mettre APPLICATIFS dans Type de panne. Ce qui deviendrait :
1667223377495.png

Dur. dur.
 

Pièces jointes

  • 1667223370157.png
    1667223370157.png
    10.2 KB · Affichages: 18
Dernière édition:
J

jip31

Guest
Re à tous

Pour compléter ma demande de précisions.
J'obtiens cela
Regarde la pièce jointe 1153934
Est-ce correct ?
Re
Oui cà à l'air
Quoi qu'il en soit, je vais faire un nouveau message avec un fichier source plus clair en essayent de répondre à vos remarques et celles d Hasco pour que ce soit le plus clair possible
Désolé pour toutes ces imprécisions mais je suis moi même victime des indécisions du métier ;-)
Merci
 
Dernière modification par un modérateur:

job75

XLDnaute Barbatruc
Je vois que les formules de mon post #12 n'intéressent personne.

Sans doute parce que j'ai ajouté les 2 colonnes "Population impactée2" et 'Type de panne2".

Alors je les ai supprimées dans ce fichier (2).

Les formules en E2 et F2 sont intéressantes :
Code:
=SIERREUR(REPT("Guich";OU(INDEX(Test1;Lig);INDEX(Test2;Lig)));"")
Code:
=SIERREUR(REPT(INDEX(Table1[Type de panne];Lig);INDEX(Test1;Lig))&REPT(INDEX(Table1[Type de panne2];Lig);INDEX(Test2;Lig));"")
Comme on le voit pour le code 44204 il n'y a pas ajout de ligne mais concaténation en F6.
 

Pièces jointes

  • Bureau TEST(2).xlsx
    28.8 KB · Affichages: 4
J

jip31

Guest
Bonjour à tous
Le fichier en PJ proposé initialement par Chris fonctionne bien
Mais la seule condition qu'il prend en compte est Population impactée = "Guich"
Or, j'ai aussi besoin que soit pris en compte le type de panne (ce qui marche dans la propsition d'Hasco mais que je n'arrive pas à implémenter dans ce fichier joint)
Donc en fait, je vais essayer d'être le plus clair possible
En fait, j'ai besoin de récupérer toutes les types de population (Guich et COB) mais c'est la condition sur le type de panne qui va faire en sorte que les valeurs vont être récupéres ou pas
J'ai donc ajouté 2 lignes (ligne 6) de l'onglet "Recap" du fichier joint
Pour la ligne 6, si Population = Guich et Panne = WIFI alors je ne veux pas récupérer les valeurs. En revanche si Poulation=COB et Panne = WIFI alors je veux la récupérer
J'ai eu beau regarder toutes les étapes appliquées mais malheureusement j'ai beaucoup de mal à les comprendre
Par exemple "Index ajouté"

1667286903266.png


J'ai plein d'autres conditions à implémenter (poulation vs type de panne) et j'espère pouvoir le faire directement dans l'éditeur avancé...
Au question justement concernant l'éditeur avancé,:
comment faire pour que la table "Data_2" de l'onglet "Suivi" prenne aussi en compte les population3 et les pannes3 (colonnes Q et R)
Comme je l'ai dis, je découvre Power Query depuis 2 jours et mon besoin n'est ni simple ni clairement défini donc merci de votre indulgence...
Bonne journée à tous
 

Pièces jointes

  • Population_Pannes_PQTEST.xlsx
    36.8 KB · Affichages: 2

chris

XLDnaute Barbatruc
Bonjour à tous

Ne t'embarque pas dans l'éditeur avancé : on n'en a que très rarement besoin et surtout pas pour débuter.
On se sert à 99 % du ruban et du clic droit.

Donne plutôt
  • un tableau de tous les cas à sélectionner (arbre de décision)
  • la réponse concernant les cas 3 à 5
On pourra ensuite t'expliquer comment faire avec PowerQuery afin que tu en comprennes la logique

Je m'absente ce matin mais les autres aficionados, que je salue, seront sans doute là avant mon retour ;)
 

job75

XLDnaute Barbatruc
Bonjour jip31, chris, le forum,
cest vrai que dans mon message initial je parle de formules matricielles mais jai l'impression que Power Query sera mieux adapté au besoin ;-)
Les formules de mon post #24, quoique non matricielles, prennent en effet beaucoup de temps.

J'ai testé en recopiant le tableau A2:AC7 de la feuille "Recap" sur seulement 600 lignes.

La récupération en A2:F601 de la feuille "Suivi" se fait chez moi en 7,6 secondes.

Combien de lignes aurez-vous à traiter ? Si ce sont quelques dizaines aucun problème.

A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @jip31 :),

o_O o_O o_O o_O o_O

Je ne comprends pas du tout. Je dispose également de O365 et cette macro a été écrite sous O365.

Ne fonctionne-t-elle donc pas dans le classeur que j'avais joint ?

Indiquez nous le message d'erreur (copie d'écran et ligne de l'erreur).

Le nec plus ultra de votre part serait de nous joindre votre classeur (extrait de votre classeur s'il est lourd et anonymisé) pour qu'on puisse constater l'erreur et en chercher la cause.

A+ ;)
Je dois être devenu transparent :mad:
:(:(:(:(:(:(:(:(:(:(:(
 

Discussions similaires