2016-09-05 5 views
0

私は次のようにExcelで「動的」状態を持つようにしたい:Sheet2.Cell(C2)Excelの「動的」状態ですか?

If(AND(Sheet1!D2-Sheet1!C2<0;the sum of all cells, in the same row, however before 
the current cell which is in this example: Sheet2.Cell(C2)!=0);0;Abs(Sheet1!D2-Sheet1!C2)) 

私はSUMSUMIFと試みたが、私は式にエリアをドロップした場合、問題は最初のセル内およびそれ以降でありますまだ修正されています。 問題は複雑だと私はここで、問題を明確にするうえで役立つ、私が作った一例を挙げます。次の写真では時系列を見る enter image description here

3列目は永久に落ちています。列2の列は、B2からC2への降下であるが、C2からD2への上昇および残りの降下である。今ではシート2私はsheet1からの時系列が挙動を上げるのに一度だけ表示されているかどうかを知りたいと思います。そうであればそのセルから差を入れますが、ゼロは入れません。次の写真のように[enter image description here]

+0

私が正しく理解しているならば、動的部分については、 '$ A $ 2:C $ 2'のようにして列全体をドラッグすることができます。これは、動的エンドポイントを持つために開始点と相対点を固定する絶対参照の組み合わせです。 –

+0

私はいくつかの質問を思い出すことができます:言葉で説明することはできますか?コード/式を使用しないでください。 – Clauric

+0

はい、あなたはすべて正しいです。少し複雑です。私はちょっと説明することができたらいいと思っています。 – maniA

答えて

1

これはもっとも洗練された解決策ではありません。 次のように私は(私の例Bにある)最初の列を計算:

=IF((Sheet1!C2-Sheet1!B2)<0,0,ABS(Sheet1!C2-Sheet1!B2)) 

をそしてC2に、私はその後、私はすべてのフィールドに、この式を適用

=IF(AND((Sheet1!D2-Sheet1!C2)<0,SUM($B2:B2)=0),0,ABS(Sheet1!D2-Sheet1!C2)) 

を書きました!できます。

短所:最初の列を計算して残りの部分に適用できるようにする必要があります。

+1

これは良いアプローチ+1だと思います。私はまだ必要ではなく、より遅くなっていた配列式を使用していました。 –

+1

私はあなたの2番目の数式でSUM($ B2:B2)を入れることを意図していたと思います。シート2!B2に実際にIF(AND((Sheet1!C2-Sheet1!B2)<0、SUM(A2:$ A2)= 0)、0、ABS(Sheet1!C2-Sheet1!B2)文字列を含むセルに適用するとエラーになりません。ただゼロを与えます。試してみてください。私は私の答えを削除します。 –

+0

あなたは正しいと思います。あなたの答えはエレガントです。私はそれを使用しましたが、別の準備をしました。おそらく、それは操作を必要とするでしょう。 – maniA

関連する問題