列AとBが与えられた場合、列Cの行に空白以外のBセルがあるA値をリストします。
A B C
One Two
Two x Four
Three
Four x
...
私がこれまでに思いついた最高のものは
{=INDEX(A1:A4;MATCH(TRUE;B1:B4<>"";0))}
c1で「2」になりますが、どうすれば続行できますか?
注:これは私の問題の簡略版です:実際には、複数ありますBのような列なので、フィルタリングはオプションではありません。また、BとCが同じシートにないので、Bシートを編集するたびにCシートを自動的に更新したいので、コピー&ペーストも実用的ではありません。
これはあなたの例で機能し、ヘッダー、より多くの列、またはより多くの行がある場合に簡単に適応させることができます。
=IFERROR(INDEX($A$1:$A$4,SMALL(IF(ISBLANK($B$1:$B$4),"",ROW($B$1:$B$4)-ROW($C$1)+1),ROW(C1)-ROW($C$1)+1)),"")
C1に数式を入力し、 Ctrl+Shift 次にを押します Enter。数式をC4に展開して、例の完全な結果を取得します。
ヘッダーまたは列を例に挿入できるようになりましたが、これは引き続き機能します。より多くの行を処理するには、範囲$A$1:$A$4
と$B$1:$B$4
を適宜変更します
Microsoftサポートの記事 条件を満たすn番目の値の検索 も参照してください。
リストを適切にフィルタリングしてみませんか? Bが空白でないすべての行について、列Bに基づいてリストをフィルタリングします。例:.
次に、列Cで必要な場合は、コピーして貼り付けます。 フィルターをかけると一部のセルが非表示になるため、フィルターをクリアするまでコピー/貼り付けが正しく表示されない場合があることに注意してください。