IF, LEFT, INDIRECT Excel-Funktion für PLSS-Bereich-Township-Bereich

698
Chris Swanson

Ich bin GIS-Spezialist für ein Katasterunternehmen.

Ich führe Office 2010 aus und versuche, eine Funktion in Excel zu erstellen, die den Abschnitt, das Township und den Bereich von der 16-stelligen Paketidentifikationsnummer (PID) in einzelne Spalten ableitet.

Die PID beginnt mit den 3 Ziffern der Erhebungsgemeinde, gefolgt von den beiden Ziffern der Abschnittsnummer. Die "Umfrage-Township" sollte jedoch nicht mit der Township und der Reichweite des PLSS verwechselt werden. Jedes "Vermessungsstädtchen" fällt jedoch in das Netz eines einzelnen Township- und Reichweitenplatzes im PLSS.

Jedes Umfrage-Township besteht aus 9 "Kartenblättern", die aus den alten Tagen von Milar-Kartenblättern mit 4 Abschnitten pro Karte bestehen. Es gibt 36 Abschnitte in einem "Umfrage-Township". Neun Kartenblätter mit 4 Abschnitten pro Blatt sind die 36.

SO. PID 0241800000001000   Survey township: 02 Map sheet: 4 Section: 18  PLSS township: 04 PLSS range : 06 

Bisher. Ich kann die Abschnittsnummer leicht sammeln. Ich arbeite jetzt im Township und Bereich. Ich habe eine Referenzliste in Sheet2 erstellt, die jedes Kartenblatt in der Grafschaft (011-209) auflistet. Die jeweilige Grafschaft verfügt über 20 Umfrage-Townships. Die Formel muss sich auf die Liste auf Blatt 2 beziehen. Wenn die ersten drei Zeichen des PID für Umfrage Township 2 021-029 sind, sollte die Ausgabe für die Township-Zelle (04S) für Township 4 South sein. Der Umfrage-Township-Bereich (021-029) und der Output des PLSS-Townships (04S) sind meine Variablen, die ich je Landkreis ändern werde.

Folgendes habe ich bisher:

=IF(LEFT(B2,3) = ("Sheet2!A1:A9"),"05"), IF(LEFT(B2,3) = ("Sheet2!B1:B9"), "04") 

Auf Blatt 2,

  • A1: A9 referenziert die Kartenblattliste für Umfrage Township (011-019)
  • B1: B9 referenziert die Kartenblattliste für Umfrage Township 02 (021-029)

B2 ist der PID-Ort.

Die Ausgabe sagt entweder "FALSE" oder! VALUE #. Oder es schlägt mit einem Fehler fehl.

2
Blatt 2, Spalte A, Zeile 1-9: 011 012 013 014 015 016 017 018 019 Chris Swanson vor 7 Jahren 0
Shee2, Spalte B, Zeile 1-9: 021 022 023 024 025 026 027 028 029 Chris Swanson vor 7 Jahren 0
Geht in ähnlicher Weise zur Spalte T. Chris Swanson vor 7 Jahren 0
Ich habe gerade gefunden, wie man einen Tabellenkopf erstellt. Sieht eher aus, als auf den Bereich aus Tabelle2 zu verweisen, kann ich möglicherweise nur auf den Spaltennamen verweisen? Chris Swanson vor 7 Jahren 0
Warum dann nicht einfach: `= TEXT (LEFT (B2,2) +4," 00 ")` das sollte Ihnen das geben Scott Craner vor 7 Jahren 0
Ich folge nicht . . . Chris Swanson vor 7 Jahren 0
Ich sehe jetzt. Nimm einfach die ersten beiden Charaktere und verweise die PLSS Township auf die Survey Township. Chris Swanson vor 7 Jahren 0
Das hat nicht funktioniert. Ich versuche immer noch, das herauszufinden. Ich möchte die Formel lesen - wenn die linken 2 Zeichen in Zelle A = Y sind, dann fügen Sie Z in Zelle B ein Chris Swanson vor 7 Jahren 0
Es ist wirklich schwierig, Ihre Diskussion zu verfolgen. Bitte konsolidieren Sie Ihre Frage und fügen Sie alle neuen Informationen aus den Kommentaren hinzu. Máté Juhász vor 7 Jahren 0
(1) Sie sind offensichtlich kein Experte für Excel. Nur wenige von uns sind Kartographen. Ich weiß nicht, was PLSS ist, ich verstehe nicht, was Sie unter "Reichweite" verstehen, und es interessiert mich nicht wirklich. Können Sie Ihr Problem als String-Manipulationsproblem erklären, das nichts mit Karten zu tun hat? (2) Wenn du nicht willst, dass wir verwirrt sind, sei nicht verwirrend. (2a) Sie sagen, dass die ersten drei Ziffern der PID die Umfrage-Township-Nummer sind, aber dann sagen Sie, dass die ersten beiden Ziffern die Umfrage-Township-Nummer und die dritte Ziffer die Kartenblattnummer ist. … (Fortsetzung) Scott vor 7 Jahren 0
(Fortsetzung)… (2b) Sie sprechen über Abschnitte, beschreiben jedoch nicht, wie sie für die Frage relevant sind. (2c) Sie sagen, Sie wollen Township 04 und die Range 06, aber dann sagen Sie, Sie möchten 04S. Was ist die Beziehung? (3) Was soll diese Formel, die Sie zeigen, sogar versuchen zu tun? Es hat zwei durch ein Komma getrennte "IF" -Funktionen ***. Was? (4) Sie müssen uns mehr geben, um fortzufahren. Sie haben gesagt, Sie hätten in Sheet2 eine Referenzliste erstellt, in der jedes Kartenblatt in der Grafschaft aufgeführt ist. Aber was ist das? Woher sollen wir aus PID 0241800000001000 Township 04 und Bereich 06 oder Township Cell 04S bekommen? Scott vor 7 Jahren 0
@GypsySpellweaver falsche Person. Ich habe die Frage nicht gestellt, sondern einen Kommentar. Ihre Kommentare sind für das OP nicht ich. Scott Craner vor 7 Jahren 0
Ups, tut mir Leid. @ChrisSwanson Wie Sie an den Kommentaren hier erkennen können, sind die Daten für diejenigen verwirrend, die sich nicht mit den Themen auskennen. 1: Jedes Umfrage-Township gehört zu einem PLS-Township, also ist das Kartenblatt sogar von Bedeutung (dh warum 021-029 überprüft werden, wenn nur die '02' wichtig ist)? 2: Bilden die Kartenblätter der Umfrage-Township ein Quadrat? 3: Folgen die Umfrage-Townships insgesamt einem Standardmuster wie den Abschnittsnummern oder den R / T-Nummern oder dem PLSS? 4: Wie groß ist eine Erhebungsstadt in Bezug auf eine PLSS-Gemeinde? (9 Abschnitte, 1 Abschnitt, Viertelabschnitt, Viertelviertelabschnitt usw.)? Gypsy Spellweaver vor 7 Jahren 0

2 Antworten auf die Frage

1
reasra

Abgesehen von dem Gewinn der Auszeichnung "Most Confusing Problem Statement" (bitte lesen Sie die Kommentare von @Scott), möchte ich, dass Sie die PID / Township-Werte mit einer Liste in vergleichen möchten Sheet2.

Das IF(LEFT(B2,3) = ("Sheet2!A1:A9"),"05")ist falsch, aber ich kann sagen, dass Sie versuchen, ein "04"oder zu bekommen "05".

Versuchen Sie, diese "Gruppen" nicht in separaten Spalten zu haben, sondern setzen Sie alle möglichen Werte der PID in die Spalte A(noch Sheet2). Geben Sie nun das gewünschte Ergebnis für diese Werte in die Spalte ein B. Sollte ungefähr so ​​aussehen:

 A | B ----+---- 011 | 04 012 | 04 013 | 04 014 | 04 015 | 04 016 | 04 017 | 04 018 | 04 019 | 04 020 |  021 | 05 022 | 05 023 | 05 024 | 05 025 | 05 026 | 05 027 | 05 028 | 05 029 | 05 

Jetzt haben Sie eine Nachschlagetabelle . In der folgenden Formel sollten Sie bekommen, was Sie wollen:

=INDEX(Sheet2!$B$1:$B$19,MATCH(LEFT(B2,3),Sheet2!$A$1:$A$19,0)) 

Und ja, Tische können hier dein Freund sein (besonders auf Sheet2). Aber auch hier hatte ich kein Beispiel für die Tabelle. Würde gerne mehr helfen, aber wir brauchen mehr Informationen.

@ ChrisSwanson Kein Problem. Ich sehe, das ist Ihre erste Frage hier. Das haben wir alle schon durchgemacht. Konzentrieren Sie sich beim nächsten Mal auf etwas mehr Allgemeines, damit wir leichter helfen können. Wenn es sich um einen Fehler mit Code / Formel handelt, machen Sie ihn auf unserer Seite reproduzierbar. Screenshots sind jetzt sehr einfach in die Frage einzubetten. reasra vor 7 Jahren 1
1
Gypsy Spellweaver

Wenn ich die Beschreibung noch einmal las und nach Antworten auf meine früheren Fragen suchte, bin ich zu dem Schluss gekommen, dass jedes Umfrage-Township nicht nur in das Netz eines einzelnen Township- und Range-Platzes im PLSS fällt, sondern dass es auch mit Ausnahme der Nomenklatur übereinstimmt. Somit entsprechen alle 9 Blätter von Umfrage Township 02 den alten 9 Blättern von Township 04S Range 06W (oder 06E). Da Sie sagten, dass die aktuelle Grafschaft 20 Umfrage-Townships hat, habe ich eine hypothetische "Landkarte" des Landes erstellt, die die Überlagerung von 20 Umfrage-Townships auf einem PLSS-Netz zeigt. (Da Sie über die Karten verfügen und die Region kennen, können Sie mein Beispiel anpassen.) Ich habe diese hypothetische Karte sowohl über eine Grundlinie als auch über einen Meridian gekreuzt, so dass Sie ihre Anwendung in diesem Fall sehen würden.

Dies ist die "Karte", die ich für das Beispiel verwendet habe.

enter image description here

Wenn Sie diese Karte in Daten für Ihre Tabelle2 konvertieren, wird die folgende Tabelle generiert:

enter image description here

Mit Ihren Beispieldaten für die PID 0241800000001000 habe ich Folgendes als Sheet1 erstellt:

enter image description here

Die Formel für Zelle B2lautet =LEFT(A2,2), die Nummer der Erhebungsgemeinde aus der PID zu extrahieren.

Die Formel für Zelle C2lautet =MID(A2,3,1), das Kartenblatt aus der PID zu extrahieren.

Die Formel für Zelle D2lautet =MID(A2,4,2), die Abschnittsnummer aus der PID zu extrahieren.

Wenn Sie die letzte Formel als Leitfaden verwenden, sollten Sie jeden anderen Teil der PID extrahieren können, der vorhersehbar ist. Ich vermute, dass die restlichen 10 Ziffern in zwei Gruppen von 5 für die Unterteilung östlich und nördlich der Schnittecken liegen. (8.000 Gunter-Links würden funktionieren, denke ich, wenn Sie sich an einem Ort befinden, der das System noch verwendet, oder sogar Zentimeter in 5 Ziffern passen.)

Die Formel für Zelle E2lautet =VLOOKUP(VALUE(B2),Sheet2!$A$2:$C$21,2), den Wert (numerisch) der Zelle B2in Spalte 2 Avon Sheet2 zu ermitteln und den Wert der 2. Spalte in derselben Zeile zurückzugeben. Beachten Sie, dass dies der einzige Punkt ist, auf den Sie achten müssen! Die Werte in der Indizierungsspalte von Sheet2 müssen Zahlen und nicht Text sein. Anstelle von "02" ist es also nur 2. Dies ist wahrscheinlich besser, da Excel bei der Eingabe von Zahlen diese als Zahlen und nicht als Text speichern möchte, es sei denn, Sie erzwingen das Problem mit Anführungszeichen oder expliziter Zellenformatierung.

Die Formel für Zelle F2lautet =VLOOKUP(VALUE(B2),Sheet2!$A$2:$C$21,3), außer dass es sich um die dritte Spalte handelt. Diese funktioniert genauso wie die Formel in Zelle E2.

Wenn Sie die Daten in Sheet2 und den Verweis darauf in den Spalten E und F von Sheet1 ändern, sollten Sie diese für jedes Land in Ihrem Bundesstaat wiederverwenden können, sofern sie dasselbe System mit der PID verwenden. Ich hoffe, für die Punkte, die ich missverstanden habe, dass Sie die hier gegebenen Konzepte anpassen können, um sie zu korrigieren.

BEARBEITEN

Wenn Sie dasselbe System für mehrere Countys oder Survey Township-Sets verwenden möchten, ändern Sie Sheet2, indem Sie am Anfang zwei Spalten einfügen. Dies ist für die Liste der Grafschaften oder andere Namen, die Sie für Vermessungs-Township-Sets verwenden möchten, und deren entsprechenden Bereich zum Auffinden von PLSS-Daten. Diese Liste muss alphabetisch gehalten werden, da andere Sätze hinzugefügt werden. Jeder Bezirk hat seinen eigenen Satz von drei Spalten. Diese Tabellen müssen nicht von links nach rechts gestapelt werden. Sie können auf jede Art und Weise angeordnet werden, die am besten zu Ihrem Workflow passt. Sie müssen auch nicht in irgendeiner Reihenfolge gehalten werden, nur die Namen in der Spalte Amüssen in der richtigen Reihenfolge sein. Dies ist ein Beispiel mit 3 Sätzen, die ich nur eingefärbt habe, um deutlich zu machen, wie sie zusammenbrechen.

enter image description here

Dies ist die Beispielkarte der Sets. Ich habe einige überlappende Bereiche eingefügt, da ich weiß, dass nicht alle County-Linien den bequem gezeichneten PLSS-Grenzlinien folgen. Ich vermute also, dass zwei verschiedene Vermessungs-Townships einer gemeinsamen PLSS-Township / Range entsprechen könnten.

enter image description here

Fügen Sie im ersten Blatt Sheet1eine neue Spalte für den Landkreisnamen als Spalte ein A. Beispiel unten gezeigt.

enter image description here

Die in dieser Spalte verwendeten Namen müssen exakt mit den Namen in der ersten Spalte von übereinstimmen, Sheet2können jedoch in beliebiger Reihenfolge verwendet werden. Die Formeln von Sheet1müssen für die Änderungen in beiden Blättern angepasst werden und auf die Bezirksnamen verweisen.

Die Formel für Zelle C2 lautet =LEFT(B2,2).

Die Formel für Zelle D2 lautet =MID(B2,3,1).

Die Formel für Zelle E2 lautet =MID(B2,4,2).

Die Formel für Zelle F2 lautet

`=VLOOKUP(VALUE(C2),INDIRECT("Sheet2!"&VLOOKUP(A2,Sheet2!$A$2:$B$100,2)),2)`. 

Die Formel für Zelle G2 lautet

`=VLOOKUP(VALUE(C2),INDIRECT("Sheet2!"&VLOOKUP(A2,Sheet2!$A$2:$B$100,2)),3)`. 

In Zellen F2und in G2der Formel ist der Bereich enthalten, Sheet2!$A$2:$B$100in dem 100nur eine Zahl gewählt wird, die für viele Länder (eigentlich 99) gilt. Wenn Sie Staat hat 120 Landkreise sind, und Sie müssen alle von ihnen bedecken, um die Änderung 100zu 121zum Beispiel.

Die "Magie" geschieht in den letzten beiden Zellen mit zwei Funktionen VLOOKUPund INDIRECT. Das Innere VLOOKUPverwendet den Kreisnamen in der Sheet1Spalte A, um den zu verwendenden Bereich zu finden Sheet2. Dies wird mit anderen String-Elementen kombiniert, um die vollständige Referenz der Tabelle in zu erstellen Sheet2. Die INDIRECTFunktion nimmt diese Zeichenfolge und wandelt sie in eine Referenz um, die das äußere VLOOKUPObjekt verwenden kann.

Sie können für verschiedene Zustände separate Blätter verwenden, wenn Sie möchten. Um dies zu tun, ändern Sie die Sheet2Verweise in Zelle F2und G2bis Sheet3oder wie auch immer der neue Blattname ist. Sie können die Blätter auch umbenennen, auch wenn es nur zwei sind, und zwar in etwas, das besser funktioniert. Wieder müssen Sie die Sheet2Verweise auf den neuen Namen ändern . (Insgesamt 4 Ersetzungen pro Zeile, jeweils zwei in Fund G.) Wenn zwei Bundesstaaten den gleichen Bezirksnamen haben, spielt dies keine Rolle, da der Name in der Liste auf dem Arbeitsblatt dieses Bundesstaates nachgeschlagen wird und nicht auf seine eigene Tabelle verweist der gleichnamige Bezirk in einem anderen Bundesstaat.

Ursprünglich habe ich vergessen zu erwähnen, dass die Formatierung der Zellen Sheet1für die PID auf Text gesetzt werden muss, andernfalls werden Zahlen als Zahlen verstanden, und Excel löscht führende Nullen und die Funktionen zur Zeichenfolgenbearbeitung in den nächsten 3 Spalten werden ausfallen, was in den letzten beiden Spalten zu Fehlern oder sogar Fehlern führt.

Eine zusätzliche Anmerkung für Benutzer, die Linux verwenden, muss !in den Tabellenverweisen VLOOKUPauf einen Punkt geändert werden ., damit es in LibreOffice Calc funktioniert, aber der Rest bleibt so wie er ist.

Genau das habe ich versucht. Lassen Sie mich es also noch komplizierter machen. Lol. Was ist, wenn ich ein "Landkreis" -Feld hinzufügen möchte, das sich auf das Nachschlageblatt für den einzelnen Landkreis bezieht? Wenn Sie Ihr Beispiel oben verwenden, sagen Sie, PID 0241800000001000 befindet sich in Bezirk A und 2093500200010000 in Bezirk B. Und nehmen Sie an, ich habe bereits ein eindeutiges Nachschlagewerk für jeden Bezirk in meinem Bundesstaat. Chris Swanson vor 7 Jahren 0
Es müssen keine separaten Blätter verwendet werden. Siehe meine Bearbeitung zur Antwort. Gypsy Spellweaver vor 7 Jahren 0