1

次のようなデータを持つExcelファイルが1つあります

CUSIP   Quantity  Date           Price
AF0      500000   5/6/2013      1
AE4      400000   5/6/2013      1.0825
AE4      500      5/6/2013      1

CUSIP列を確認する必要があり、同じ列Date が重複している場合は、次の計算を行う必要があります。CUSIPdate

1.重複レコードを表示する代わりに、両方を追加するQuantity必要がある場合は、1 つのレコード (数量の合計) のみを表示する必要があります。

2.次のように価格の計算を行う必要があります

NewPrice = ((400000 * 1.0825) + (500 * 1.00))/(400000 + 500) = 1.08148

たとえば、上記のデータを使用して、次のような出力を表示する必要があります

CUSIP   Quantity  Date          Price
AF0     500000    5/6/2013      1
AE4     400500    5/6/2013      1.082397004

   

LOOKUP または else を使用して Excel ファイルでこれを達成するにはどうすればよいですか?

4

1 に答える 1

1

さて、かなりの調査の後(ちなみに興味深い質問です!)、私はこれを思いつきました:

=IF(COUNTIF($A$2:A2,A2)>1,"",SUMIF(A:A,A2,B:B))
=IF(COUNTIF($A$2:A2,A2)>1,"",SUMPRODUCT(--(A:A=A2),B:B,D:D)/SUMIF(A:A,A2,B:B))

Priceこれらをそれぞれセル D2 と E2 に入れます (これはCUSIP の行の次の列ですAF0)。

そして、加重平均価格または各 CUSIP を得るために、ワークシートの一番下まで記入してください。

最初の数式は CUSIP の合計数量を示し、2 番目の数式は平均価格を示します。

計算後、これら 2 つの列の値をコピーして貼り付けます。

フィルターをかけて、合計数量と平均価格が空白の行をすべて削除し、並べ替えてワークシートを整理します。

これがうまくいくかどうか教えてください!サンプルデータで試してみましたが、うまくいっているようです。初めて利用しましたSUMPRODUCT^^;


SUMPRODUCT(--(A:A=A2)

このビットは、行の CUSIP に等しい列 A から行を返します。

SUMPRODUCT(--(A:A=A2),B:B,D:D

この追加ビットは、上記で返された各行の列 B と D の値を乗算し、SUMPRODUCT各結果を加算するように Excel に指示します。

編集: 実際には日付を忘れていました。異なる日付を区切るための識別子を生成するヘルパー列を追加することもできます。それを作るには、を作る必要がありますconcatenate

したがって、セル F2 に次のように入力します。

 =CONCATENATE(A2,C2)

セル D2 と E2 の数式では、次のように変更する必要があります。

=IF(COUNTIF($F$2:F2,F2)>1,"",SUMIF(A:A,A2,B:B))
=IF(COUNTIF($F$2:F2,F2)>1,"",SUMPRODUCT(--(A:A=A2),B:B,D:D)/SUMIF(A:A,A2,B:B))

再編集: おっと、間違った参照を入れてください。今修正しました。

于 2013-05-08T18:08:38.490 に答える