0

他のワークシートのセル範囲への動的間接参照を作成する方法を推測するのに苦労しています。詳細は次のとおりです。

ワークブックには 4 つのワークシート (Product1、Product2、Product3、Warehouses) が含まれています。Warehouses シートには、3 つの製品ワークシート ( http://exceltactics.com/make-filtered-list-sub-arrays-excel-using-small/から派生) から各倉庫の在庫リストを作成する次の数式が含まれています。これは、セル B3 の数式です。

=IFERROR(INDEX(INDIRECT(B$2&"!B$3:B$400"),SMALL(IF(INDIRECT(B$2&"!$C$3:$C$400")=$B$1,ROW(INDIRECT(B$2&"!B$3:B$400"))-ROW(INDIRECT(B$2&"!B$3"))+1),ROWS(Product1!$B$3:$B3))),"")

どこ:

倉庫 -->$B$1 = Warehouse1 または Warehouse2

倉庫 --> B2、C2、D2 = Product1、Product2、Product3 の列ヘッダー

製品シート --> 列 B = シリアル番号

製品シート --> 列 C = 場所 (倉庫 1、倉庫 2)

ROWS(Product1!$B$3:$B3)現在、各行の数式の最後の部分を修正する必要ROWS(Product2!$B$3:$B3)がありますROWS(Product3!$B$3:$B3):行ごとに変更されますが、他の行は静的であり、引用符で囲まれています。ROW(INDIRECT(B$2&"!B$3:B$400"))$B3

能力の低いユーザーが式を修正せずに新しい列にコピーできるようにしたいので、この努力は重要です。これについてのご意見をお待ちしております。

4

2 に答える 2

1

INDIRECT 関数の文字列連結に増加する数値を導入するには、いくつかの方法があります。入力すると 1、2、3、...を返す単純なROW 関数が好きです。あなたの場合、k yu は から始まります。ROW(1:1)ROW(3:3)

... -ROW(INDIRECT(B$2&"!B"&ROW(3:3)))+1),
..., ROWS(INDIRECT(B$2&"!B3:B"&ROW(3:3))),"")

リマインダーです。テキストで記述されたセル アドレスに絶対 $ の指定を残すことは、次に進む可能性があるもの (相対的) とそうでないもの (絶対的) を視覚的に思い出させるのに役立ちますが、行または列を表すテキストが実際に移動することは決してありません。少なくとも少し余分になるように変更します。

于 2015-04-04T05:25:43.320 に答える