2017-04-03 11 views
1

SUMPRODUCTとVLOOKUP関数式内の列の変数を使用して、私はこの数式を使用しようとしている

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{4,5},0)) 

それが正常に動作しますが、私は式の{4,5}部分に変数を使用しようとしたいのですがこの数式の前にシート入力に基づいて数式を変更する必要があるため、(配列の列は合計されます)。

最初と最後の列を検索するために使用されるシート上のセルがあります(おそらく10列ですが、10列は利用可能ないくつかの列から選択する必要があります)。列は集団です各年齢に関連する。ですから、10歳から15歳までの人口が必要な場合は、5つの列を合計する必要があります。 20-25の場合は、5つの異なる列を集計する必要があります。

私はColumns関数を使用しようとしましたが、それは私のためには機能しませんでした。

列は、検索範囲の上限と下限をセルに入力したユーザーが選択し、それらの値を対応する数値列の値に変換します。

5を上限と10を選択すると、データページ(列12)に正しいデータ列を取得し、同様に上位(列17)に7を追加する必要があることがわかりました。

検索可能な領域はすべて$D$4:$DC$4623です。だから、式では、場合、私はそれは次のようになり長い道のりを、それを書いた:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{12,13,14,15,16,17},0)) 

私は、このような何かを変数を使用してそれを書くことを好むだろう:

=SUMPRODUCT(VLOOKUP(B$4778,$D$4:$DC$4623,{L:U},0)) 

変数Lだろう12となり、変数Uは17になります。

誰かが式を書く方法を提案できますか?

答えて

1

使用この配列数式:D5は下部及びE5が上だろうあり

=SUM(VLOOKUP(B$4778,$D$4:$DC$4623,ROW(INDIRECT(D5 & ":" & E5)),FALSE)) 

アレイ式であるため、編集モードを終了するときにEnterではなくCtrl-Shift-Enterを押して確定する必要があります。正しく実行されたら、excelは数式の周りに{}を入れます。

enter image description here


いっそこの非配列数式を使用します。

=SUM(INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),D5):INDEX($D$4:$DC$4623,MATCH(B$4778,$D$4:$D$4623,0),E5)) 

enter image description here

+0

ブリリアントを!彼らは英国で言うように両者ともに治療を受けました!あなたは私に時間と欲求不満の束を救った。私はn0n配列の式を使用します。ありがとうございました! – Bob22

関連する問題