2017-05-14 12 views
2

私は、結果列の累積合計を列挙する値を持つ1つの列を持っています。しかし、これは2番目の列の3つの(ソートされた)カテゴリに対して個別に発生する必要があります。 Screenshot配列式としての条件付き累積和

例シートhereを参照してください。

私は、この単純な問題を解決するために何時間も努力してきましたが、成功していませんでした。我々はそれが

に疑問をさらに =if()せずに仕事を得ることができれば式が、それは、配列、式

  • ベストであることが必須

    1. だすでにかなり大規模な配列、式の一部となりますので、

      ドラッグダウン式でこれを解決するのは非常に簡単ですが、何らかの理由でこれを配列式に変換できません。シートで

      =SUMIF($B$2:B2,$B$2:B2,$A$2:A2)

  • +1

    出力をどのようにしたいのかが '??? 'セルに正確にはわかりません。あなただけが欲しいですか? Bのみ?すべて?答えは何ですか? –

    +0

    出力は列Eと同じにする必要があります。この列には、ドラッグダウン式が設定されています。私の使命:アレイ式で同じ出力を作成する。 ;-) 質問のためのthx! – gazeto

    答えて

    0

    共有スプレッドシートの 'JP' は、私はそれが動作するかどうかを参照してくださいD2

    =ArrayFormula((IF(LEN(A2:A), SUMIF(ROW(A2:A),"<="&ROW(A2:A),A2:A),))) 
    

    に入りましたか?

    EDIT:カテゴリごとの累積和のために、

    =ArrayFormula(if(len(B2:B100), mmult({mmult(if(B2:B100<>"A", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100),(B2:B100="A")*(A2:A100), 0))), row(B2:B100)^0), mmult(if(B2:B100<>"B", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100), (B2:B100="B")*(A2:A100), 0))), row(B2:B100)^0) , mmult(if(B2:B100<>"C", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100), (B2:B100="C")*(A2:A100), 0))), row(B2:B100)^0)}, {1;1;1}),)) 
    

    この式を試してみてください、私はまた、あなたが共有シートにこの数式を追加しました。

    +0

    この数式は、カテゴリに関係なく、列Aの累積合計を計算します。これを行うには、B列の特定のカテゴリに対してのみこれを行うように式を伝える必要があります。したがって、式(C列のシートにthx !!を加えたもの)とその隣の式列D)。 再度:希望の出力はE列の出力です。別の式で終了する必要があります。 – gazeto

    +0

    こんにちは@ gazeto:私は私の答えを更新しました。これがあなたのために働くかどうか見てください。開いた配列(多くの行がある)で使用された場合、この式は非常に「リソースに優しい」ものではないことに注意してください。 – JPV

    +0

    印象的な工事^^ありがとうございます - 私は近い見方をして、式を簡素化する方法を見つける/それをより速くするために共有します。 (私は評判が足りないので、うんざりすることはできません。 – gazeto