2017-12-29 16 views
0

私は在庫単位のセットを処理しています(古いものから新しいものまで順番に並んでいます)。過去の出現の検索

取引された前の数量を検索したいと思います。ここで

は、サンプルデータセットである:

=SUMIFS(D:D,C:C, C4,A:A, "<=" &A4) 

質問:私はPrevQtyをどのように把握するかを

Date(A) Type(B) Stock(C) Qty(D) PrevQty(E) CumulativeQty(F) 
2016-01-03 Buy MSFT 100 0 100 
2016-01-04 Buy GOOG 500 0 500 
2016-01-05 Buy MSFT 100 100 200 
2016-01-06 Sell MSFT 100 100 100 

私は経由CumulativeQtyを計算することができますか?

答えて

0

この式は、自分のセルE3のために設計されています。

=IFERROR(LOOKUP(2,1/($C$2:$C2=$C3),$D$2:$D2),0) 

基本的に、C3の最後の「在庫」を探します。しかし、その最後の出来事は自然にC3そのものでしょう。したがって、式が存在する行は、最後のオカレンスが求められる範囲から除外されます。

最初のデータがワークシートの2行目にあることが前提です。

+0

ありがとうございました。これは今や道理にかなっています。私の前の質問のもう一つのバリエーションは、どのようにして私のPrevQtyが今日までに累積合計を表示できるのかです。 (F) 2016-01-17 MSFT 100 0 100 2016-01-23購入GOOG 500 0 500 2016-11を購入する(A)タイプ(B)在庫(C)数量(D)前払い-14購入MSFT 100 100 200 新規行>>>> 2016-12-01購入MSFT 100 200 300 2016-12-01販売MSFT 100 100 100 – Ash

+0

私はフォローアップの質問を楽しまないのですか?あなたの質問に答えた場合は、あなたのために働いた答えを選択し、別のスレッドで次の質問をしてください。上記のように基準と合計範囲から現在の行を除外する同じ手法を使用して、単純なSUMIF()関数で累積合計を非常に簡単に行うことができます。 – Variatus

0

PrevQty

{=index(D:D,match((A4-1)&C4,A:A&C:C,0))} 

更新:非連続の日付の 、同じ証券名前から値を取得するために、あなたは2ソートを行う必要があります - 古いから新しい1日、2つの株式名AZまたはZA

最初の(最古の株)行を空にして、その株価の2番目に古い行から数式を開始します。プラスN/Aの取り扱い。

{=IFERROR(INDEX(D:D,MATCH(MAX(A$3:A3)&C4,A:A&C:C,0)),0)} 

以下の実施例:(セルE4における上記式)

enter image description here
+0

ありがとうございます。とても有難い。 1つのわずかなバリエーション:日付が連続していない場合はどうですか?彼らは任意の価値を取ることができますが、ソートされています(古いものから新しいもの)。例:日付(A)タイプ(B)在庫(C)数量(D)前払い(E)累積数量(F) 2016-01-17購入MSFT 100 0 100 2016-01-23購入GOOG 500 0 500 2016-11-14購入MSFT 100 100 200 2016-12-01販売MSFT 100 100 100 – Ash

+0

また、完全に一致するものが見つからない場合は「#N/A」を返します。 "#N/A"の代わりに0を返す方法はありますか? – Ash

関連する問題