Ich habe folgende Anfrage:
Meine Eingabetabelle ist
Grundsätzlich möchte ich Spalten für jede ID suchen. Wert3 & gt; Wert2 & gt; Wert1
Wenn Wert und Wertespalte Daten enthalten, sollte die Ausgabe die ID mit dem Wert 3 zeigen
Wenn Wert3 Daten enthält, füllen Sie die Ausgabe als Wert3 aus. Wenn Wert2 und Wert3 Daten enthalten, sollte auch Wert3 ausgefüllt werden
Ausgabe:
Gibt es eine Formel, die ich schreiben kann, um diesen Wert abzurufen?
Antworten:
Wenn es sich nur um drei Wertespalten handelt, sind IF-Tests eine einfache Möglichkeit. Angenommen, die angezeigte Tabelle beginnt in A1 (A1 = Überschrift "ID"). Die Formel für den ersten Ausgabewert wäre:
Kopieren Sie das in die Ausgabespalte. (Dies setzt voraus, dass jede Zeile in der Datentabelle durch eine Zeile in der Ausgabetabelle dargestellt wird und beide die ID-Spalte in derselben Reihenfolge haben.)
quelle
Hier ist eine allgemeinere Lösung. Ich gehe davon aus, dass Sie fünf "Wert" -Spalten haben (
B
durchF
) und Sie möchten das Ergebnis in der SpalteG
. Geben Sie diese Formel in die Zelle einG2
:und Typ Strg + Verschiebung + Eingeben . Das macht es zu einer "Matrixformel"; es wird in der Bearbeitungsleiste mit geschweiften Klammern angezeigt (
{
…}
) um es herum. Ziehen Sie nun so viele Zeilen nach unten, wie Sie möchten:ISBLANK()
prüft, ob eine Zelle leer ist (TRUE
wenn es ist,FALSE
wenn nicht).NOT(…)
kehrt die Logik um; jetzt haben wirTRUE
wenn die Zelle (nicht leere) Daten enthält undFALSE
wenn keine Daten vorhanden sind.Es stellt sich heraus, die
TRUE
ist eigentlich der Wert1
undFALSE
ist eigentlich0
.COLUMN(B2:F2)* (obenstehendes)
Nimmt die Spaltennummer jeder Zelle im Bereich und multipliziert es mit 1, wenn die Zelle Daten enthält, und mit 0, wenn dies nicht der Fall ist. Dies ergibt die Spaltennummer (× 1), wenn die Zelle Daten enthält. und 0 (Spaltennummer × 0), wenn dies nicht der Fall ist. Für Zeile 3 ist dies beispielsweise {2,0,4,0,0}. weil der zweite (B
) und viertens (D
) Spalten haben Daten.MAX(…)
wählt den größten aus; d.h. die Nummer der am weitesten rechts stehenden Spalte, in der sich Daten befinden.=OFFSET($B$1, 0, (obenstehendes) -2)
Findet die Zelle mit 0 Zeilen darunter undMAX(COLUMN(B2:F2)*NOT(ISBLANK(B2:F2)))-2
Spalten rechts von der ZelleB1
. Wir subtrahieren 2 von der Spaltennummer, weilB1
ist in Spalte 2, also wannMAX(COLUMN(B2:F2)*NOT(ISBLANK(B2:F2)))
ergibt 2 (wie in Zeile 2), Wir möchten 0 Spalten rechts von der Zelle platzierenB1
.quelle