2013-12-17 20 views
5

Sheet1には列A〜Dがあり、Aには一意のレコードキーが含まれています。ARRAYFORMULAとINDIRECTを使用して行を反復してブロックとして返す

Sheet2では、自分の並べ替え順序に合わせてデータを並べ替える必要があります。 Colum Aには、独自のカスタムレコードキーが含まれています。

私が今Sheet2で何をしてきたかは、私は

=ARRAYFORMULA(MATCH(A1:A100,Sheet!A:A,0)) 

として列Bのレコードの位置を計算していると私は、一度にデータを取得するために間接ARRAYFORMULAを使用しようとしています。 私は私が欲しいもの

=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1&":D"&B1))) 

を使用して、正しく単一の行を取得することができますが、以下のようなものですが、それはまだ最初の行のみを返します。

=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1:B100&":D"&B1:B100))) 

ヘルプ。

答えて

8

残念ながら、INDIRECTは配列に対する反復をサポートしていません。

幸いなことに、VLOOKUPはヘルパー列を必要としません。だから、:

=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4}*SIGN(ROW(A1:A100)),0))

new version of Sheetsで、3番目の引数は単純化することができます。

=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4},0))

+0

は魅力、感謝アダムのように働きました。それを考えてみると、これも "貧しい人の"テーブルの参加としても機能しますか? –

+1

どのようにそのような有用な情報がドキュメンテーションで利用できないのですか? –

+0

確かに、それはテーブルジョインとして使うことができますが、しばしばパフォーマンスにヒットします(あなたが作るすべての編集で計算式が再計算されています)。ドキュメントについては、新バージョンのシートで改善されましたが、まだ発見しなければならないことがたくさんあります。 https://productforums.google.com/forum/#!searchin/docs/multivalue$20parallel$20lookup/docs/36A0epDlIdE/qnywZst0DioJ – AdamL

関連する問題