1

2つの条件に基づいてカウントする式を作成しています。私の論理は間違っています - 繰り返します。

合計数式 (COUNTIFS) の入力コードを正しいセル自体に (手動で) 入力すると、正しく合計されます。

COUNTIFS(E4:E1362,"Requirement",S4:S1362, "<>4")

次のコード行を実行すると、エラーは発生しませんが、すべての合計がゼロになります。

Range("G" & Start(groups) - 1).Formula = "=COUNTIFS(E" & Start(groups) & ":E" & Finish(groups) & "," & "Requirement" & ",S" & Start(groups) & ":S" & Finish(groups) & "," & Chr(34) & "<>4" & Chr(34) & ")"

COUNTIFS が列 S の値を文字列 "<>4" と比較していることに気付きました。そして、その文字列を含むセルはありません。これが、私の値がすべてゼロだった理由です。その文字列に対して比較を行いたくありません。比較を列Sの値が4に等しくないようにしたい.

だから、私は行を次のように変更しました(そしてそれを機能させるためのバリエーション):

Range("G" & Start(groups) - 1).Formula = "=COUNTIFS(E" & Start(groups) & ":E" & Finish(groups) & "," & "Requirement" & ",S" & Start(groups) & ":S" & Finish(groups) & "," & Chr(34) & "<>" & Chr(34) & "4)"

だから、私は途方に暮れています。(1) 数式を手動で入力すると、機能します。(2) VBA でビルドしましたが、正しく加算されません。(3) 数式を正しく作成する方法を調べましたが、何度もエラーが発生します。これを機能させる唯一の方法は、引用符を引用符で囲むことだと思われますが、文字列と比較したくありません。

これは理にかなっていますか?ワークシートが気に入らなくなりました。それはもはやまったく楽しいことではありません。:(

どうもありがとう。

4

4 に答える 4

1

そこで見つけた問題の 1 つは、「,」を使用する代わりに「;」を使用する必要がある、非常に単純なものでした。使用したバージョンによって異なりますが、「,」を使用するものと「;」を使用するものがあります。試してみてください。問題が解決したことを願っています。

2番目の「要件」がありますが、代わりに二重引用符を使用する必要があると思います。

あなたの場合、この条件を満たすには:

COUNTIFS(E4:E1362,"Requirement",S4:S1362, "<>4")

これを使って:

 "=COUNTIF(E" & Start(groups) & ":" & "E" & Finish(groups) & "," & """Requirement""" & "," & "S" & Start(groups) & ":" & "S" & Finish(groups) & "," & """<>4"")"

私はそれがうまくいくはずだと思います(私が引用を見逃していなければ)。

于 2018-12-11T02:43:10.627 に答える
1

Chr(34)すべてが数式を正しく表示するのを妨げていると思います。""数式の引用を作成するために使用してみてください。

.Formula = "=COUNTIFS(E4:E1362,""Requirement"",S4:S1362,""<>4"")"

StartFinish関数を使用すると、式は次のように変更されます。

.Formula = "=COUNTIFS(E" & Start(groups) & ":E" & Finish(groups) & _
    ",""Requirement"",S" & Start(groups) & ":S" & Finish(groups) & ",""<>4"")"
于 2012-12-06T18:00:27.400 に答える
0

最初のコードで簡単なテストを実行した後

Range("G1").Formula = "=COUNTIFS(E1" & ":E20" & "," & "Requirement" & ",S1" & ":S20" & "," & Chr(34) & "<>4" & Chr(34) & ")"

グループ変数セル G1 を考慮して、わずかに変更すると、次の式になります。

=COUNTIFS(E1:E20,requirement,S1:S20,"<>4")

テストすると、2 番目の if ステートメント S1:S20,"<>4" で問題なく動作します。問題はあなたの最初の発言にあると思います。要件の範囲内にあるものと、一致させようとしているデータ。

範囲という名前の要件をセル D5 に設定し、そこに 5 を入力すると、範囲 E1:E20 に 5 を追加するたびに数式が増加します。次に、範囲 S1:s20 に 4 を入力し始めたところ、カウントが減少しました。

edit 私が提案できる最後のことは、列 F に行を評価して要件条件に一致するかどうかを確認するヘルパー列を追加することです。式を作成するのは簡単なことです。

=COUNTIFS(F1:F20,TRUE,S1:S20,"<>4")
于 2012-12-06T18:54:11.380 に答える
0

... chr(34) と余分な引用符を削除してみてください - 「要件」基準とまったく同じように見えるはずです:

Range("G" & Start(groups) - 1).Formula = "=COUNTIFS(E" & Start(groups) & ":E" & Finish(groups) & ",""Requirement"",S" & Start(groups) & ":S" & Finish(groups) & ",""<>4"")"
于 2012-12-06T17:15:19.640 に答える