2016-07-26 8 views
1

これを行う方法を見つけようとしています。現時点では。私はスプレッドシートに複数のデータセットをインポートします。私は、互いに垂直に設定された2つのピボットテーブルを持っています。上の水平はすべてテスト名で、縦は日付のリストです。ダイナミックレンジに基づいて列内のExcel Forumulaセルを拡張する

日付は、クエリから取得されたデータポイントの数に基づいて変化するため、範囲は常に変化します。

データは、次のコードを使用してこれらの2つにソートされます。

=IF(SUMPRODUCT((Sheet3!$B$4:$B$174=E$3)*(Sheet3!$C$4:$C$174=$B10)*(Sheet3!$E$4:$E$174))>0,SUMPRODUCT((Sheet3!$B$4:$B$174=E$3)*(Sheet3!$C$4:$C$174=$B10)*(Sheet3!$E$4:$E$174)),"") 

最終的な効果は、データが適切なデータ/テストのペアにこのフォーマットにソートされることです。

データソート式の影響を受けた領域を、無限に行を伸ばしずに拡張できる必要があるため、問題が発生しています。

IマクロこのVBAを使用しようとしたが、意図はEXACT式をプルダウンしないが、それはExcelがそれを拡張することになるような式を拡張することで、そのような行に変更することが許可されている項目を変更します列を使用してデータのソート基準を変更します。

Sub aTest() 
With Sheets("Sheet2") 
    .Range("c4:c" & .Cells(.Rows.Count, "B").End(xlUp).Row).Formula = "=Len(B4)" 
End With 
End Sub 

これは、式を正確にコピーしたために機能しませんでした。

ありがとうございます。

答えて

0

代わりに.FormulaR1C1メソッドを使用してください。トリックを行う必要があります。セル参照のオフセットを考慮する必要があります。

Sub aTest() 
    With Sheets("Sheet2") 
     .Range("c4:c" & .Cells(.Rows.Count, "B").End(xlUp).Row).FormulaR1C1 = "=Len(R[0]C[-1])" 
    End With 
End Sub 

角括弧は、基準相対するので、"=Len(R[0]C[-1])"前つの列を参照し、ゼロ行

ダウン
関連する問題