2016-09-07 2 views
1

Um die erste nicht-leere Zelle in einer Reihe verwende ich zurück:Wie die zweite nicht-leere Zelle aus Reihe zurückzukehren Excel für Mac

=INDEX(C1:F1,MATCH(TRUE,INDEX((C1:F1<>0),0),0)) 

Doch wie kommen Sie zurück, die zweite nicht-leere Zelle in einer Reihe? Ich habe nur Text in meinen Zellen.

Wenn ich versuche = INDEX (C1: F1, AGGREGATE (15,6, Spalte (C1: F1)/Zeichen (LEN (C1: F1)), 2)), wie vorgeschlagen.

Ich bekomme nicht die nächste nicht leere Zelle zurückgegeben, ich bekomme F-Zelle zurückgegeben, auch wenn es andere gibt, die davor zurückgegeben werden sollten. Wenn nichts in F ist, bekomme ich eine 0.

+0

'COLUMN ($ A: $ D)' gibt Ihnen die ** Position in ** Spalten C: F. – Jeeped

Antwort

3

Verwenden Sie die AGGREGATE function 's SMALL subfunction.

=INDEX(A1:A13, AGGREGATE(15, 6, ROW(1:13)/SIGN(LEN(A1:A13)), 2)) 

The ist die k für die kleine Unterfunktion. Ersetzen Sie es mit ROW(2:2) und straffen alle der anderen Zellbezüge, wenn Sie für das dritte füllen unten wollen, vierte usw.

position_within

Bei der Rückkehr der Spaltenindexnummer zurück zum INDEX function, AGGREGATE function verwendet die COLUMN function anstelle der ROW function .. COLUMN($A:$D) gibt Ihnen die Position innerhalb Spalten C: F; z.B. 1, 2, 3 oder 4.

position_within_columns

+0

Ich bekomme einen #Ref Error. Wenn es hilft, ist mein Zelleninhalt Text, und ich versuche, die nächste nicht leere Zelle in Zeile, nicht Spalte zu identifizieren. –

+0

Wie Sie aus dem hinzugefügten Bild sehen können, funktioniert die Formel. Ich vermute, dass Sie die Bereiche Ihrer tatsächlichen Daten geändert haben, um das Beispiel in Ihrer Frage zu erstellen. Die 'ROW ($ 1: $ 13)' ist die ** Position innerhalb von ** A1: A13, nicht die Zeile auf dem Arbeitsblatt. Wenn Ihr ** tatsächlicher ** A1: A13 A10: A19 wäre, dann wäre es "ROW ($ 1: $ 10)", da dies die ** Position innerhalb von ** A10: A19 darstellt. – Jeeped

+0

Ich glaube, das Poster möchte eine ** Zeile ** statt einer ** Spalte ** suchen. –

1
{=INDEX(C1:F1,SMALL(IF(C1:F1<>"", COLUMN(C1:F1)-2),2))} 

aktualisieren

-2 ist die Abkürzung für -COLUMN(INDEX(C1:F1,1,1))+1 so die volle Matrixformel ist:

{=INDEX(C1:F1,SMALL(IF(C1:F1<>"", COLUMN(C1:F1)-COLUMN(INDEX(C1:F1,1,1))+1),2))} 

Sie können auch eine Antwort akzeptieren, indem Sie auf das grüne Häkchen daneben klicken. https://stackoverflow.com/tour

+0

tbpf, wenn ich flack fange, um 'COLUMN (A: D)' zu verwenden, um '1, 2, 3, 4' darzustellen, dann sollten Sie die mathematische Anpassung in' COLUMN (C1: F1) -2), 2' erklären . Gleiches "Spielfeld" und all dieser Unsinn. – Jeeped

+0

@Jeeped es war eine Last Minute beheben, weil ich 'A1: F1' verwendet, wenn ich die Antwort geschrieben habe und dann bin ich wie gewöhnlich faul:] Ich war neugierig, was die Antwort vor 2010 wäre, da ich immer noch Excel 2007 benutze Ich fand Ihre Antwort sehr informativ, da "AGGREGATE" das Ignorieren von Fehlern und versteckten Zellen sehr nützlich scheint. – Slai

Verwandte Themen