"Erweiterter" SVERWEIS-Bereich

"Erweiterter" SVERWEIS-Bereich

Ich habe einige Probleme mit dem angegebenen Problem: Ich habe ein Arbeitsblatt mit Spalte A mit verschiedenen Brunnennamen. In einer zweiten und dritten Spalte sind die oberen und unteren Tiefen einer geologischen Schicht sowie der Name der Schicht angegeben. Beispiel: Brunnen_XYZ --- 40,02 --- 40,55 --- Schicht_NAME

In einem anderen Arbeitsblatt habe ich meine Liste der Proben, die an/aus diesen verschiedenen Bohrlöchern entnommen wurden, wie im anderen Arbeitsblatt in Spalte A angegeben, mit einer bestimmten Probentiefe. Beispiel: Probe-XYZ --- 40,34

Nun möchte ich wissen, welche Formel (in EXCEL-Zelle geschrieben) ich verwenden kann, um den Layer_NAME zum Proben-ID-Blatt hinzuzufügen, wenn ich die Probentiefe des Tiefenintervalls jedes Bohrlochs überprüfe. Ich habe mehrere Ansätze ausprobiert (mit INDEX/MATCH, VLOOKUP), aber keiner von ihnen funktioniert richtig (oder die Formel wird gemäß meiner R-Programmierlogik mit „fehlenden Argumenten“ nicht akzeptiert).

Da ich diese Dinge (noch) nicht an R auslagern möchte, sondern lieber meine Excel-Kenntnisse (die andere „Schemata“ und Herangehensweisen als Python oder R verwenden) verbessern möchte, würde ich mich sehr freuen, wenn ihr mir hierbei helfen und mich in die Welt des „Excel-Denkens“ einführen könntet. :)

Vielen Dank im Voraus!

Antwort1

Es wäre sehr hilfreich, eine echte XL-Datei online zu stellen, um sie anzusehen, aber ich habe es mit diesen Daten versucht: Blatt1

Oh, das habe ich nicht erwartet. SU hat meine eingefügte Tabelle in ein Bild umgewandelt. OK, das verwenden wir.

Dann sieht Ihr anderes Blatt so aus:

Blatt 2

Die Formel lautet:

=LOOKUP(B2,Sheet1!B:B, Sheet1!D:D)

Das hier habe ich:https://exceljet.net/formula/lookup-value-between-two-numbers

Dies bringt jedoch GROSSE Probleme mit sich! Erstens müssen wir davon ausgehen, dass es in einem Blatt mehr als einen Brunnen geben kann, da „Well“ der Name der ersten Spalte im ersten Blatt ist. Das ist an sich kein Problem. Das Problem besteht darin, dass die Daten in der obersten Spalte sortiert werden müssen (aufsteigend). Wenn Sie also einen weiteren Brunnen haben und Ihre Daten so aussehen:

Blatt 1 geändert

Dann haben Sie überlappende Bereiche (40,34 fällt in 2 Bereiche) und Sie könnten das falsche Ergebnis erhalten (Sie erhalten die letzte Übereinstimmung). Wenn Sie Ihre Beispielseite so ändern können, dass der Brunnenname als separate Spalte erhalten bleibt, können Sie diese möglicherweise verwenden, um das erste Blatt zu „filtern“ und dann die obige Suche auf dem Ergebnis durchzuführen. Das ist viel komplizierter, aber es ist definitiv machbar, sieheHierUndHier.

Antwort2

Ich glaube, in Ihrer Frage fehlen einige Details, aber ich gehe davon aus, dass der Brunnenname auf dem Probenblatt stehen muss. Um die andere Antwort zu erweitern: Sie können XLOOKUPeinen Filter für die Brunnentiefe verwenden.

=XLOOKUP(H2,FILTER($B$2:$B$5,$A$2:$A$5=$G2),FILTER($D$2:$D$5,$A$2:$A$5=$G2),"",-1,1)

Bildbeschreibung hier eingeben

Der Einfachheit halber habe ich meine Beispieldaten auf dasselbe Blatt gesetzt.

Die erste Methode FILTERgibt einfach die Werte aus Spalte B zurück, wobei Spalte A mit dem Brunnennamen in der aktuellen Zeile übereinstimmt (die sich in Spalte G befindet). Dies ist nur ein Array mit zwei Elementen {40.02,40.55}. Dies sind die Werte, nach denen XLOOKUPgesucht wird.

Die zweite Methode FILTERgibt die Werte aus Spalte D zurück, wobei Spalte A mit dem Brunnennamen der aktuellen Zeile übereinstimmt (wiederum Spalte G). Dies sind die beiden Werte {XYZ_1,XYZ_2}. Diese entsprechen nun den beiden oben aufgeführten numerischen Werten. Wenn wir mit dem ersten der Nachschlagewerte übereinstimmen, geben wir den ersten Layernamen zurück, wenn wir mit dem zweiten der Nachschlagewerte übereinstimmen, geben wir den zweiten Layernamen zurück.

Der vierte Parameter XLOOKUPgibt an, was zurückgegeben werden soll, wenn keine Übereinstimmung gefunden wird. In unserem Fall eine leere Zeichenfolge.

Der fünfte Parameter ist für dieses Problem wichtig. -1Er wird für „Exakte Übereinstimmung oder nächstkleineres Element“ verwendet. Wenn wir versuchen, einen beliebigen Wert aus einer Stichprobe mit dieser Liste abzugleichen, durchsuchen wir das Nachschlage-Array und finden die engste Übereinstimmung, die nicht größer ist als der gesuchte Wert. Der letzte Parameter teilt der Funktion mit, in welche Richtung gesucht werden soll. Er kann weggelassen werden, da 1 der Standardwert ist.

Wir durchsuchen also das Array mit den beiden Zahlen oben nach 40.34. Da wir die beste Übereinstimmung erhalten, die nicht größer als dieser Wert ist, erhalten wir 40.02, das erste Array-Element. Daher geben wir das erste Array-Element aus dem zweiten Array zurück, das die Layer-Namen - enthält XYZ_1.

Zusammenfassend hilft uns der Filter, das Problem zu vermeiden, dass unterschiedliche Brunnen möglicherweise ähnliche Tiefen aufweisen, und die ungefähre Suche hilft uns, die „nächstliegende“ Übereinstimmung aus der gefilterten Liste zu finden.

verwandte Informationen