Ein Arbeitsblatt lesen und Daten in ein anderes laden, aber nicht nur als Referenz

Ein Arbeitsblatt lesen und Daten in ein anderes laden, aber nicht nur als Referenz

Ich habe eine Liste mit Ausrüstungsgegenständen und -attributen, die ein Rohdatendump aus einer Datenbank ist. Neben Attributen wie Ausrüstungsstatus (wie in Betrieb, im Standby usw.) oder Ölstand enthält sie auch Dinge wie Überschriften und Platzhalter als separate Datensatzzeile. Das sind also die Daten, mit denen ich arbeite.

Mit diesen Daten möchte ich ein weiteres Blatt mit diesen Informationen füllen, indem ich sie unter anderem anhand einer teilweisen Textzeile auswähle. Hier ist ein Beispiel dafür, was eine Zelle, die ich überprüfe, enthalten würde.

"\Hierarchy\P2 PROCESS DE-OIL\DE-OIL\DE-OILING D\BU-1002\P-1866A"

Ich würde nach dem Teil „DE-OILING D“ in dieser Textzeile suchen. Dies kann Hunderte von Datensätzen umfassen, und indem ich nur die Datensätze mit diesem Teiltext heraushole, ziehe ich die anderen Hunderte von Datensätzen, die ich nicht brauche, nicht heraus.

Jetzt hoffe ich, dass dies mit einer Funktion möglich ist. Ich weiß, dass ich die Anzahl dieser Datensätze, die in dieser Datenliste enthalten sind, mit einer COUNTSIFAnweisung zählen kann (bei mir funktioniert diese Formel: „=ZÄHLENWENN('DBASE SHEET'!B:B,A4)“). Ich weiß also, dass es erkannt werden kann, aber ich kann beim besten Willen nicht herausfinden, wie ich die anderen Datenfelder abrufen kann, indem ich nach dem Text „De-Oiling D“ als bedingtes Argument suche und dann die anderen Daten basierend auf diesem Kriterium referenziere.

index()Ich habe , indirect(), und ausprobiert vlookup()und es ist entweder etwas völlig anderes oder vielleicht eine Kombination dieser Funktionen. So oder so kriege ich die Formel nicht zum Laufen.

Und jetzt kommt noch die andere Schwierigkeit. Sobald ich den Datensatz gefunden habe, den ich in das neue Arbeitsblatt übertragen möchte, möchte ich eine Liste der neuen Daten erstellen können, die jedoch nicht viele leere Zeilen enthält.

Probenaufzeichnung unter Verwendung |von Zelltrennern:

|\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       |

Als Ausgabe hätte ich gern das Folgende, ohne Leerzeichen oder ähnliches:

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

Antwort1

Mit der Anweisung COUNTIFS() sind Sie auf dem richtigen Weg. Behandeln Sie die Textzeichenfolge wie beim Vergleichen von Zahlen und verwenden Sie die Qualifizierer > und <, um zu prüfen, ob jede Zeichenfolge mit dem gesuchten Abschnitt beginnt.

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

wobei A4 Ihre

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

und A5 enthält

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

Wenn Sie eine dynamische Formel zum automatischen Ausfüllen von A5 benötigen, versuchen Sie

=LEFT(A4,LEN(A4)-1)&CHAR(CODE(RIGHT(A4,1))+1)

verwandte Informationen