J'ai une liste d'actifs et d'attributs d'équipement qui est un vidage de données brutes à partir d'une base de données. Parmi les attributs tels que l'état de l'équipement (course, veille, etc.) ou le niveau d'huile, des éléments tels que les en-têtes et les espaces réservés sont également inclus dans une ligne d'enregistrement distincte. C'est donc avec cela que je travaille en termes de données.
Ce que je voudrais faire avec ces données, c'est remplir une autre feuille avec ces informations en les sélectionnant en fonction d'une ligne de texte partielle parmi d'autres critères. Voici un exemple de ce que contiendrait une cellule que je vérifie.
"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"
Ce que je voudrais vérifier serait "DE-OILING D" partie de cette ligne de texte. Cela peut inclure des centaines d'enregistrements et en extrayant les enregistrements avec seulement ce texte partiel, je ne vais pas extraire les autres enregistrements dont je n'ai pas besoin.
Maintenant, j'espère que cela est possible avec une fonction. Je sais que je peux compter le nombre de ces enregistrements qui figurent dans cette liste de données avec une COUNTSIF
instruction (cette formule fonctionne pour moi "= COUNTIF ('DBASE SHEET'! BASE: B: B, A4)"). Je sais donc que cela peut être détecté, mais je ne peux pas comprendre comment extraire les autres champs de données en recherchant le texte "Dégraissage D" comme argument conditionnel, puis en référant les autres données en fonction de ce critère.
Je l' ai essayé index()
, indirect()
et vlookup()
il est soit quelque chose de complètement différent , ou peut - être une combinaison de ces fonctions. De toute façon, je n'arrive pas à faire en sorte que la formule fonctionne.
Maintenant, voici l'autre ride. Une fois que j'ai détecté ledit enregistrement et que je souhaite le transférer dans la nouvelle feuille de calcul, je veux pouvoir créer une liste des nouvelles données, mais sans un tas de lignes vides.
Enregistrer l'échantillon en utilisant |
comme séparateurs de cellules:
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | OIL LEVEL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING C\P-1370 | SUCTION PRESSURE|
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1470 | OIL LEVEL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | NULL |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | RUNNING STATUS |
|\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\P-1570 | OIL LEVEL |
Ce que j'aimerais avoir comme sortie est le suivant sans espaces ni aucune de ces choses:
|DE-OILING C | P-1370 | RUNNING STATUS |
|DE-OILING C | P-1370 | OIL LEVEL |
|DE-OILING C | P-1370 | SUCTION PRESSURE|
|DE-OILING D | P-1470 | RUNNING STATUS |
|DE-OILING D | P-1470 | OIL LEVEL |
|DE-OILING D | P-1570 | RUNNING STATUS |
|DE-OILING D | P-1570 | OIL LEVEL |
Réponses:
Vous êtes sur la bonne voie en considérant l'instruction COUNTIFS (). Traitez la chaîne de texte comme vous le feriez lorsque vous comparez des nombres, en utilisant les qualificateurs> et <pour vérifier si chaque chaîne commence par la section que vous recherchez.
où A4 contient votre
et A5 contient
Si vous avez besoin d’une formule dynamique pour remplir automatiquement le A5, essayez
la source