2016-12-14 6 views
1

に正しくループのために使用することができますどのように持っているの下に次のループ:私は複数の条件

With Sheets("Sheet Name") 
    For i = 2 To 26 
     .Cells(11, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), "S") 
     .Cells(12, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), "YS")    
    Next i 
End With 

文字列、すなわち「S」、「YS」により、各ラインの変化の終わりに最後の条件。私は "S"と "YS"のそれぞれに1行を使用する必要がないように、つまり各基準ごとに多くの行があります。私はまた、その後の課題と改善の私の長いリストの次のステップは、私はコストデータを見ていたとして、これをシミュレートするが、SUMIFSのためにすることでした行

+0

** _...は何を意味するのですか?これを1行に入れる方法を見つける必要があります。 ? – FDavidov

+0

明快さに欠けて申し訳ありませんが、上記の@FDavidovを更新します – user1

答えて

4
codes = Array("S", "YS") 
For i = 2 To 26 
    For j = 0 to UBound(codes) 
     Sheets("Sheet Name").Cells(11+j, i).Formula = Application.WorksheetFunction.CountIfs(Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), codes(j)) 
    Next j 
Next i 
+1

Works完璧に!私は方法がなければならないことを知っていた、もっと研究する必要がある! – user1

-1

を扱うループのための別のものを追加したいです。

下記を参照してください。私は他の人がこれを享受し、おそらく改善することを願っています!

With Sheets("Operations Schedules -Summary") 
    For i = 2 To 26 
     For j = 0 To UBound(codes) 
      .Cells(37 + j, i).Formula = Application.WorksheetFunction.SumIfs(Sheets("Sheet1").Range("AD8:AD" & n), Sheets("Sheet1").Range("F8:F" & n), Sheets("Sheet2").Range(Chr(64 + i) & "8"), Sheets("Sheet1").Range("AC8:AC" & n), codes(j)) 
     Next j 
    Next i 
End With 

SUMIFSのいくつかの基本的な構文:

  • 最初の部分は、第二の部分(単数または複数)が基準範囲を指定することである和範囲
  • を指定し、critera
  • します
  • これは私が信じる197のcriteriasに続きます!

    • I、J、及びnは、long型の変数は上記の変数の様々な資格を見て、任意の初心者のため

    。 nはターゲットデータセットの行数を(動的に)カウントするために使用されます