Extrahieren Sie Werte aus einem Bereich, die einem anderen fehlen

5601
Kevin Hua

Ich habe zwei Spalten in Excel, "ROSTER" und "PRESENT" (siehe unten):

column image

Gibt es eine Formel, um die Spalte "NICHT HIER" zu erreichen? Ich habe versucht, VLOOKUP()und https://superuser.com/a/289653/135912 ohne Erfolg = (

Jede Hilfe wäre dankbar!

Vielen Dank!

6
Wie wäre es damit? http://superuser.com/questions/81498/excel-find-items-in-one-column-that-eine-keine-inother-column bfhd vor 12 Jahren 1
Das funktioniert, aber ich kann keine leeren Räume http://i.imgur.com/ETpb1.png haben Kevin Hua vor 12 Jahren 0
Sehen Sie sich die Lösung von "jeeped" in diesem Link an - das gibt Ihnen keine Leerzeichen - es setzt voraus, dass Excel 2007 oder höher verwendet wird. Welche Version haben Sie? barry houdini vor 12 Jahren 0

2 Antworten auf die Frage

9
Ellesa

Es gibt keine integrierte Funktion, die diese Aufgabe alleine ausführen kann.

Sie können diese Matrixformel in der Spalte "Nicht hier" ausprobieren (MS Excel 2007+).

=IFERROR(INDEX(roster,SMALL(IF(COUNTIF(present,roster)=0,ROW()-1,""),ROW()-1),1),"") 

Wobei (in meinem Beispiel)
rosterein benannter Bereich, auf den verwiesen wird, $A$2:$A$21
presentist ein benannter Bereich, auf den verwiesen wird$B$2:$B$21

Um die Formel einzugeben, wählen Sie die Zellen in der Spalte Nicht hier aus (in meinem Fall C2 bis C21 ), geben Sie die Formel ein und drücken Sie Ctrl+ Shift+Enter

enter image description here

0
Iakovosian

Dies mag etwas übertrieben sein, aber es funktioniert. Hoffentlich macht es Ihnen nichts aus, eine "Not Here" -Spalte mit Leerzeichen zu haben, bevor Sie das Endergebnis (Not Here 2) erreichen.

Picture of working solution


Hinter den Kulissen:

Benannte Bereiche in Gebrauch:

  • Dienstplan: (B3: B19)
  • Geschenk: (C3: C19)
  • NotHere: (F3: F19)

Eingegebene Feldformel (D3: D19) ...

{=IF(ISERROR(MATCH(Roster,Present,0)),Roster,"")}


In Zellen eingegebene Feldformeln (E3: E19) ...

{=IFERROR(INDEX(NotHere,SMALL(IF(FREQUENCY(IF(NotHere<>"",MATCH(ROW(NotHere),ROW(NotHere)),""),MATCH(ROW(NotHere),ROW(NotHere)))>0,MATCH(ROW(NotHere),ROW(NotHere)),""),ROW(A1)),COLUMN(A1)),"")}

{=IFERROR(INDEX(NotHere,SMALL(IF(FREQUENCY(IF(NotHere<>"",MATCH(ROW(NotHere),ROW(NotHere)),""),MATCH(ROW(NotHere),ROW(NotHere)))>0,MATCH(ROW(NotHere),ROW(NotHere)),""),ROW(A2)),COLUMN(A2)),"")}

usw...


Obwohl dies nach einer langwierigen Lösung aussieht, funktioniert es unabhängig davon, wo sich der Tisch im Arbeitsblatt befindet. Es entfernt auch #numFehler in Excel 2007, falls Sie diese Version verwenden.