3

2 つの参照テーブルの値に基づいて入力しようとしているテーブルがあります。

私はさまざまなプロジェクト「タイプ 1」、「タイプ 2」などを持っています。これらはそれぞれ 4 か月間実行され、ライフ サイクルの時期に応じて異なる金額がかかります。これらの原価計算を に示しRef Table 1ます。

表 1 を参照

Month    |  a  |  b  |  c  |  d
---------------------------------
Type 1   |  1  |  2  |  3  |  4
Type 2   |  10 | 20  |  30 |  40
Type 3   | 100 | 200 | 300 | 400

Ref Table 2は、今後 3 か月間の私のプロジェクトのスケジュールを示しています。1 月に開始される 2 つの新しいもので、1 つは で、もう 1 つType 1Type 2です。2 月には 4 つのプロジェクトがあり、最初の 2 つが 2 か月目に入って、2 つの新しいプロジェクトが開始されますが、今回はタイプ 1 とタイプ 3 です。

参照表 2

Date    | Jan | Feb | Mar
--------------------------
Type 1  |  a  |  b  |  c
Type 1  |     |  a  |  b
Type 2  |  a  |  b  |  c
Type 2  |     |     |  a
Type 3  |     |  a  |  b

毎月、プロジェクトの種類ごとに費やされた総コストを計算するテーブルを作成したいと考えています。結果の例を以下のResults表に示します。

結果

Date    | Jan | Feb | Mar
-------------------------------
Type 1  |  1  |  3  |  5
Type 2  |  10 |  20 |  40
Type 3  |  0  | 100 | 200

配列数式でやってみました:

Res!b2 = {sum(if((Res!A2 = Ref2!A2:A6) * (Res!A2 = Ref1!A2:A4) * (Ref2!B2:D6 = Ref1!B1:D1), Ref!B2:E4))}

しかし、それはうまくいきません.ベクトルを単一の値ではなく別のベクトルと比較しようとする3番目の条件が原因だと思います.

誰も私がこれを行う方法を知っていますか? 配列、インデックス、一致、ベクトル、ルックアップを使用できますが、VBA は使用できません。

ありがとう

4

1 に答える 1

2

結果テーブルヘッダーの月が参照テーブル2と同じ順序であると仮定して(例に従って)、Res!B2でこの式を試してください。

=SUM(SUMIF(Ref1!$B$1:$E$1,IF(Ref2!$A$2:$A$6=Res!$A2,Ref2!B$2:B$6),INDEX(Ref1!$B$2:$E$4,MATCH(Res!$A2,Ref1!$A$2:$A$4,0),0)))

確認しCTRL+SHIFT+ENTER、コピーしてください

それはあなたがあなたの結果表で得るのと同じ結果を私に与えます

月の順序が異なる可能性がある場合は、それを確認するために何かを追加することもできます-結果テーブルの行ラベルのタイプは、参照テーブル1とは異なる順序である可能性がありますが、常に同じ順序である場合(あなたの例のように)そしてINDEX/MATCH最後の部分は単一の範囲に単純化することができます

于 2012-12-18T10:49:25.010 に答える