2016-04-26 8 views
-2

Für ein Blatt/Tabelle:Extract Menschen Zahlen mit Text mit gemischt über verschiedene Spalten

+--------+-------------+------------+----------------+ 
| Person | Diag1 | Diag2 |  Diag3  | 
+--------+-------------+------------+----------------+ 
| A  | 431 - TB | 652 - PLA |    | 
| B  | 614 - Cough | 884 - Cold | 952 - Headache | 
| C  | 747 - BLA | 949 - POP |    | 
+--------+-------------+------------+----------------+ 

Ich habe eine Nachschlagespalte:

+------+ 
| Diag | 
+------+ 
| 431 | 
| 650 | 
| 949 | 
| 555 | 
| 484 | 
+------+ 

Für jede Person, wenn eine beliebige Anzahl in der Diag-Lookup Spalte liegt in einer der Spalten Diag1, Diag2 oder Diag 3, diese Person wird aus der ursprünglichen Tabelle mit allen zugehörigen Spalten mit nur den Zahlen in ihnen ausgewählt.

In diesem Fall Beispielausgabe:

+--------+-------+-------+-------+ 
| Person | Diag1 | Diag2 | Diag3 | 
+--------+-------+-------+-------+ 
| A  | 431 | 652 |  | 
| C  | 747 | 949 |  | 
+--------+-------+-------+-------+ 
+0

Dieses vor gestern, zwei Tage gefragt wurde. – findwindow

+0

Nur die erste Person, in der es eine Übereinstimmung findet oder alle? –

+0

@ScottCraner Suche nach jeder Person pro Zeile. Also nach dem Scannen für jede Person, wenn die Lookup-Nr. fehlt in Diag 1,2,3 für zB Person B, Person B ist out. – AS91

Antwort

1

Dies kann mit Formeln durchgeführt werden, obwohl die Formeln nicht die hübscheste sind, zu betrachten. Nehmen wir an, Sie haben eine Beispielkonfiguration wie folgt: Ihre ursprüngliche Tabelle befindet sich in Spalten A: D, Ihre Nachschlagespalte "Diag" befindet sich in Spalte F und Ihre Ergebnisse befinden sich in Spalten H: K

tigeravatar example for Amulya Sharma

In Zelle H2 und kopiert ist dies Array Formel. Beachten Sie, dass Matrixformeln müssen mit CtrlVerschiebung bestätigt werden eingeben und nicht nur Geben Sie. Sie werden wissen, dass es korrekt ausgeführt wurde, da Sie es in der Bearbeitungsleiste von geschweiften Klammern {} umgeben sehen. Versuchen Sie NICHT, die geschweiften Klammern manuell einzufügen.

=IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(FIND($F$2:$F$6,$B$2:$D$4)),ROW($B$2:$D$4)),ROW(H1))),"") 

In Zelle I2 und kopiert und unten ist diese regelmäßige Formel (kein Array-Eintrag erforderlich):

=IF(H2="","",IF(VLOOKUP($H2,$A:$D,MATCH(I$1,$A$1:$D$1,0),FALSE)="","",--TRIM(LEFT(SUBSTITUTE(VLOOKUP($H2,$A:$D,MATCH(I$1,$A$1:$D$1,0),FALSE),"-",REPT(" ",999)),999)))) 
+0

Das ist eine großartige Alternative. Die Art und Weise, wie ich es schließlich getan habe, bestand darin, Diag1,2,3 in eine einzelne Spalte zu zerlegen und dann die Anfangszahlen aus dem Text zu entfernen. Dann habe ich eine neue Spalte erstellt und ein Übereinstimmungs-/Nichtübereinstimmungs-Flag mit einem COUNTIF innerhalb einer IF-Funktion platziert, um die Nachschlage- und nicht-aufgelöste Listen zu vergleichen. – AS91