2016-04-11 19 views
0

週の種類とデータの種類に応じて行の数を数える必要があります。私はExcel式を持っていますが、私はVBコードとしてそれを作っていますが、それほどのアイデアは持っておらず、うまくいきません。Countパラメータに基づく行数。 (Excel VBA)

=IF(AND($N$4="All",$N$5="All"),SUM(('SD'!$I$2:$I$99538='Source'!$B6)*('SD'!$A$2:$A$99538='Source'!C$5)),IF(AND($N$4="All",$N$5<>"All"),SUM(('SD'!$I$2:$I$99538='Source'!$B6)*('SD'!$A$2:$A$99538='Source'!C$5)*('SD'!$B$2:$B$99538='Source'!$N$5)),IF(AND($N$4<>"All",$N$5="All"),SUM(('SD'!$I$2:$I$99538='Source'!$B6)*('SD'!$A$2:$A$99538='Source'!C$5)*('SD'!$K$2:$K$99538='Source'!$N$4)),IF(AND($N$4<>"All",$N$5<>"All"),SUM(('SD'!$I$2:$I$99538='Source'!$B6)*('SD'!$A$2:$A$99538='Source'!C$5)*('SD Raised'!$B$2:$B$99538='Source'!$N$5)*('SD'!$K$2:$K$1048576='Source'!$N$4)))))) 

私は、すべての件のデータでは、キャプチャされたシート(SD)を持っていると、もう一つは、私は以下のようにパラメータに基づいて利用可能な行数をカウントする必要があるシート(ソース)となります。データが属する週とデータのカテゴリ。

編集: この数式では、計算に必要なデータは数えられません。可能であれば、私はVBAコードとしてそれを作りたいと思っています。

これは、カウントされたデータを送信する場所です。 「週間ドロップダウンiputに応じて変更される(選択された週から4週以下の最大値)が」

Report

この画像は私がキャプチャし、週に基づいて、カテゴリの数をカウントするために必要なデータを示していますカテゴリ。 (サンプルのみ)

source

+0

あなたの質問は今ですか?あなたは何を試しましたか、正確に何をすべきですか?あなたの質問を指定してください。 –

+0

@DoktorOSwaldo申し訳ありませんが、このコードは機能しません。 – Erkyy

+0

それは私のウェブページですか?私はコードを見ることができません...ちょうどExcelの数式。 – Ambie

答えて

0

ので、私は何をしたいビットを推測する必要がありますが、あなたはExcelのVBAで特定の行をカウントしたい場合は、このようなものを使用することができますへ

Dim allRows As Variant 
Dim i As Long 

Dim count as Long 
count = 0 

allRows = Tabelle5.Range("A" & start_row, end_column & last_row) 

For i = 1 To UBound(allRows) 
    If allRows(i, 1) = *category* and allRows(i,2) = *week* Then 
     count = count + 1 
    End If 
Next 

を適切な範囲を見つける、複数の可能な解決策があります。 。

Private Function last_row() As Integer 
Dim rangeObj As Range 
Set rangeObj = Tabelle5.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious) 
If rangeObj Is Nothing Then 
    last_row = start_row 
Else 
    last_row = rangeObj.row 
End If 
End Function 

Public Function start_row() As Integer 
    start_row = 2 
End Function 
+0

詳細を参照するために画像を追加しました。 – Erkyy

+0

はい、私が掲示しているもので、それは、カテゴリとパラメータとしてカテゴリと週の機能を作る –

+0

私はこれが動作すると思うが、私は範囲を設定する必要があるので、もう少し質問がある週やカテゴリーのような必要なものはA2とI2にあり、毎週のデータが追加されているので、範囲は最大限にすべきです。 – Erkyy

0

私はより良い、むしろレンジ()Rows.Countプロパティを使用し、それはあなたがDoktorOSwaldoを打っている右のポイントだ場合、推測:私は多分それが最善ではありませんが、私にとっては正常に動作し、これを使用しますallRowsをスクロールするよりも これが役立つことを願っています。

ハディ

+0

を見てくださいOPの質問に直接回答しない(または回答しようとする)投稿は、あなたが返信する投稿にコメントとして投稿する必要があります。 – Vegard

+0

彼は範囲をフィルタリングし、非連続セルの範囲はrow.Countに問題を与えます。しかし、私はあなたのポイントを見て、とにかくそれが行われているように、配列をループすることはかなり速いです。 –

関連する問題