Lire une feuille de travail et charger des données dans une autre, mais pas simplement comme référence [fermé]


0

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 COUNTSIFinstruction (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       |

Pouvez-vous ajouter une capture d'écran des données d'entrée et une capture d'écran de la sortie souhaitée?
Jaroslav Svestka

Malheureusement, c’était mon premier article et apparemment, je ne peux pas ajouter de photos. :(
Grapeman

Ceci est un échantillon des données de la cellule que je vérifie. A4 contient \ Hierarchy \ P2 PROCESS DECHARGEMENT \ DE-OIL \ DE-OILING D *
Grapeman

Reformulé pour plus de clarté, espérons-le.
Grapeman

1
Et que dire des lignes contenant "NULL" dans la dernière colonne? Vous voulez les exclure?
DavidPostill

Réponses:


1

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.

=COUNTIFS('DBASE SHEET'!B:B,">"&A4,'DBASE SHEET'!B:B,"<"&A5)

où A4 contient votre

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D"

et A5 contient

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING E"

Si vous avez besoin d’une formule dynamique pour remplir automatiquement le A5, essayez

=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.