Frage

Ich mache einen hlookup gegen einen Wert, der mehrere Spalten erstreckt. Meine Daten ist ähnlich wie folgt aus:

      A      B      C      D 
  ---------------------------  
1|       Col1          Col2
2|     x      y      z      w
3|
4|

In den Zeilen 3 und 4 (A3, B3, C3, D3, etc.), würde Ich mag Formeln setzen, die eine HLOOKUP woanders in der Arbeitsmappe tun werden. Der Trick ist, möchte ich es „Col1“ für die Spalten A und B und „Col2“ für die Spalten C und D. „Col1“ zu sehen ist in A1, ist aber wirklich A1 und B1 zusammengeführt. Als ich A1 Referenz „Col1“ erscheint, aber wenn ich B1 verweisen, ist der Rückgabewert leer.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Um den Zugriff auf die „Col1“ zu erhalten und „Col2“ Etikett, können Sie wie folgen vor:

  

= INDEX ($ 1: $ 1,1, COLUMN () - MOD (COLUMN () - 1,2))

Hinweis: Dies setzt voraus, dass Sie zusammen die gleiche Anzahl von Zellen gruppieren. Wenn es drei Zellen, würden Sie nur die letzte Nummer in der Formel 3 ändern, und so weiter.

Bearbeiten: Hier ist, wie es funktioniert:

INDEX ($ 1: $ 1,1, x) gibt den Wert der Zelle in Zeile 1, Spalte x. Wenn Ihre Tabelle nicht tatsächlich in der linken oberen Ecke des Arbeitsblatts befindet, können Sie dies auf die tatsächliche Reichweite ändern, die alle Ihre fusionierte Etiketten enthalten. In diesem Fall wäre es: INDEX ($ A $ 1: $ D $ 1,1, x)

COLUMN () gibt die Spaltennummer der aktuellen Zelle (1 in Spalte A, 2 in Spalte B, etc.)

MOD (COLUMN () - 1, x) gibt ein von der aktuellen Spalte nach Spalte-Offset, die das richtige Etikett

halten

Andere Tipps

Hier ist eine andere Lösung, die auch funktionieren kann, wenn die fusionierten Zellen unterschiedlicher Breite sind, lassen Sie mich mit einem Beispiel verdeutlichen:

  1. Öffnen Sie ein neues Excel, fusionieren B1, C1, D1
  2. Geben Sie Col1 in der fusionierten Zelle
  3. In B2 , Typ Formel = B1 und in C2 = C1 , in D2 = D1
  4. Sie sollten sehen, B2 sein Col1 , während C2, D2 ist 0
  5. In B3 , geben Sie die Formel = A3 , kopieren
  6. Rechtsklick auf das fusionierte Zelle B1: D1 , wählen Sie "Inhalte einfügen -> Formeln"
  7. Sie sollten die fusionierte Zelle zu sehen sein 0
  8. Geben Sie Col1 in der fusionierten Zelle
  9. Sie sollten jetzt sehen alle B2, C2, D2 sein Col1 , das heißt jetzt können Sie die verbundene Zelle verweisen, wie Sie es erwarten.

Wenn Sie mehr verbundenen Zellen, die jeweils mit unterschiedlichen Breiten, fügen Sie einfach die Formel für alle von ihnen in einem Rutsch.

Der Grund für dies funktioniert, ist wegen einer perculier Design Wahl von Microsoft. Es scheint, dass, wenn Sie Formeln in verbundenen Zellen einfügen, die jeweils zugrunde liegenden Zelle, die die Formel (im Gegensatz, wenn Sie einen Wert eingeben, nur die linke obere Zelle bekommt es) erhält So können Sie es zu Ihrem Vorteil nutzen und eine Formel einfügen, die Referenz die Zelle neben ihm, und überschreibt dann die linke obere Zelle mit dem Wert, den Sie wollen, dann jede Zelle die verbundene Zelle zugrunde liegen wird diesen Wert hat.

Ich habe eine einfache Funktion in vba gebaut, die dieses Problem lösen werden:

Function mergedText(rngMergedCell As Range)

    If rngMergedCell.MergeCells = True Then
        mergedText = rngMergedCell.MergeArea(1, 1)
    Else
        mergedText = rngMergedCell
    End If

End Function

Wenn die Zelle eine verbundene Zelle ist, die Funktion den Wert in dem ersten Element der fusionierten Zelle zurückkehren - das ist, wo das fusionierte Zelle seinen Wert speichert

Eine generische Variante von e.James Vorschlag lautet:

={INDEX($A$1:A1, 1, MAX(NOT(ISBLANK($A$1:A1))*COLUMN($A$1:A1)-COLUMN($A$1)+1))}

Dies beruht auf der Tatsache, dass die fusionierten Zellen mit Ausnahme des ersten leer sind (es sei denn, Sie in einem Fall wie Martin Vorschlag sind).

Hinweis: Die geschweiften Klammern gibt es eine Matrixformel zu markieren (sie nicht betreten, drücken Sie einfach Alt + Rückkehr der Formel in der Zelle zur Validierung)

.

Ich weiß, ich bin spät auf diesen Thread, aber ich fand eine wirklich einfache Antwort auf diese Frage.

Wenn zum Beispiel das Etikett über 4 Spalten a1 verschmolzen wird: d1, und wenn Sie b1 verweisen, werden Sie zurückkehren „“. Für dynamisch die richtigen Etiketten zu finden, verwenden Sie diese fx in der neuen Tabelle:

=if(OriginalTable!B1="",ThisTable!A1,OriginalTable!B1)

Ich bin sicher, Sie werden erkennen, dass diese Bereiche in e1 erfassen wird. H1 usw., wie Sie ziehen über

Das ist es. Hoffe, es hilft jemand.

Die Zellen B1 und D2 enthalten keine Werte, nur A1 und C1 haben etwas in ihnen.

So werden Sie nur sicher machen müssen, dass Ihre Formeln in Spalten A und B beziehen sich beide auf A1 als der Referenzwert, und dass Ihre Formeln in Spalten C und D beziehen sich beide auf C1 für den Lookup-Wert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top