web-dev-qa-db-ja.com

ルックアップが機能しないGoogleスプレッドシートの列全体の配列式

私が持っているレポートシートの自動化に取り組んでおり、別の列のデータに基づいて列を数式で自動入力する、Sheetsのarrayformulaの非常に便利な使用法を発見しました。

とにかく、ルックアップ式でこのアプローチを試みるときは常に、ルックアップする列の2番目の行のみを使用し、その最初の行に対するルックアップの結果ですべての行を埋めます。

INDEX MATCHとVLOOKUPの両方を使用してみました。

INDEX MATCHを使用すると、数式は実際に見出しに対して検索されるため、結果が返されませんでした。

VLOOKUPを使用すると、2行目のみを検索するという前述の問題が発生します。

私が現在持っているVLOOKUPの式は次のとおりです。

=arrayformula( if(B:B<>"",IF( row(B:B)=1, "Country",vlookup(D:D,FBlookup!$A$3:$B$20,2))))

私は何か間違ったことをしていますか、特に列を自動入力する配列式として機能していない別のシートのテーブルに対して検索していますか?

1
George S

行1に見出しを作成しようとしているようで、その後、列Bに値がある場合はvlookupを実行します-これは動作します

={"Country";arrayformula(if(len(B2:B)>0,vlookup(D2:D,FBlookup!$A$3:$B$20,2,false),))}
1

よく見ると、問題であるvlookup式の最後にあるFALSE引数を逃したことに気付きました。これは、INDEX MATCHの使用のみを開始したときに発生することです...

関連するデータ行を動的に取得して検索するのではなく、INDEX MATCH式が見出しのみを参照する理由についてはまだ説明していません。

=arrayformula( if(B:B<>"",IF( row(B:B)=1, "Country",index($O$2:$O$19,match(D:D,$N$2:$N$19,0)))))
0
George S