Ich versuche eine Formel zu finden, um zu identifizieren, in welcher Spalte der Wert unter 0 fällt.
Ich habe Tausende von Zeilen und Dutzende von Spalten, daher ist es keine Option, dies manuell zu tun
Also, wenn meine Spalten und Werte wie folgt sind:
A B C D
1 Jul Aug Sep Oct
2 25 10 5 -2
3 10 2 -6 -10
Für Zeile 2 möchte ich das Ergebnis "Oct" (oder 4 als 4. Spalte) zurückgeben, da dies der Monat ist, in dem der Wert unter 0 fällt. Für Zeile 3 möchte ich den Wert "Sep" (oder 3 als "Oct") zurückgeben die 3. Spalte).
Irgendwelche Ideen?
microsoft-excel
microsoft-excel-2010
Dave Barnett
quelle
quelle
Antworten:
Es ist wahrscheinlich etwas einfacher, INDEX / MATCH zu verwenden, z. B. diese Array-Formel in AV10
=INDEX(AW$1:BM$1,MATCH(TRUE,AW10:BM10<0,0))
bestätigt mit CTRL+ SHIFT+ENTER
Wenn Sie CSE vermeiden möchten, fügen Sie eine weitere INDEX-Funktion wie diese hinzu, und die Formel kann "normal" eingegeben werden.
=INDEX(AW$1:BM$1,MATCH(TRUE,INDEX(AW10:BM10<0,0),0))
Wenn es keine Zahlen <0 gibt, wird der Fehler # N / A zurückgegeben
=IFERROR(INDEX(AW$1:BM$1,MATCH(TRUE,INDEX(AW10:BM10<0,0),0)),"No negative numbers")
quelle
Sie können dies mit einer Matrixformel tun. Wählen Sie in Zeile 2 die Zelle aus, in der Sie die Formel haben möchten, fügen Sie Folgendes in die Bearbeitungsleiste ein und drücken Sie Ctrl+ Shift+ Enter.
Als Referenz
A1:D1
dient der Bereich der Spaltenüberschriften (Monate) undA2:D2
die Werte in der Zeile. Diese Formel sucht nach Werten unter 0 und nimmt dann den Wert mit der kleinsten Spaltennummer. Anschließend wird die Monatsüberschrift in dieser Spaltennummer zurückgegeben.Diese Formel kann bis zu allen Zeilen ausgefüllt werden.
BEARBEITEN:
Wenn Ihre Daten nicht in Spalte A beginnen, müssen Sie die Formel geringfügig anpassen, damit sie funktionieren. In der Formel bleibt alles gleich, außer dass das erste Argument der
INDEX
Funktion auf Spalte A erweitert werden muss. Wenn Ihre Daten beispielsweise in Spalte C beginnen, würden Sie stattdessen die folgende Formel verwenden (als Matrixformel eingegeben).Der Grund dafür ist, dass das
INDEX
zweite Argument der Funktion die Position im Array angibt, nicht unbedingt die Spaltennummer. Diese Unterscheidung wird aufgehoben, wenn Sie das Array nur bis zur Spalte A ausdehnen (dh die Position im Array entspricht der Spaltennummer).quelle
=INDEX(A$1:BM$1,MIN(IF(AW10:BM10<0,COLUMN(AW10:BM10))))
.