1
いくつかの配列を転置しようとしていますが、255より長い文字を持つものがあります。だから、私は誰かがこのコードを短くするのを助けることができるかどうかを見たいと思った。VBAを255文字未満に短縮
私のデータには、フラグ(1または0)と量(amt)の列があります。数式は、私のフラグ付きの列を見て、私の数式またはそれ以上と同じ行にあるが、11行しか探していない3 1を見つけます。次に、フラグ付きの列に3つの1が見つかると、それに対応する3つのamtが平均化されます。
IFERROR(IF(RC[-2]=1, AVERAGE(INDEX(R[-11]C[-1]:RC[-1], MATCH(2,1/(FIND(1,R[-11]C[-2]:RC[-2])))), INDEX(R[-11]C[-1]:R[-1]C[-1],MATCH(2,1/(FIND(1,R[-11]C[-2]:R[-1]C[-2])))), INDEX(R[-11]C[-1]:R[-2]C[-1],MATCH(2,1/(FIND(1,OFFSET(R[-2]C[-2],-9,0,MATCH(2,1/(FIND(1,R[-11]C[-2]:R[-1]C[-2])))-1)))))),0),0)
flag | amt | avg
1 | 5 | 0
1 | 6 | 0
1 | 2 | 4.33 = (2+6+5)/3
0 | 7 | 0
1 | 6 | 4.67 = (6+2+6)/3
1 | 11 | 6.33 = (11+6+2)/3
興味深いプロセスであり、動作しているようです!カップルのこと。 1.それを修正して有限の量を調べる方法はありますか?同様に、この例では、セルは4行しかルックアップしません。 ; 2.インデックス内の集計はどのように機能しますか?私は集計に精通していませんが、私はインデックスマッチです。 – PVic
@Pvic編集を参照してください。 –
集計では、行番号を返します。行1または希望の行数の間の列Aに1を持つ3番目に大きい行番号と、数式が配置されている行を検索します。その後、その行番号をINDEXに返し、それをaverageIFに返します。 –