Erstellen einer VBA-Formel mit ZÄHLENWENN
Bin ich eine Formel erstellen, um zu zählen, basierend auf 2 Bedingungen. Meine Logik ist falsch - wieder einmal.
Wenn ich (manuell) enter enter code die Summe der Formel (ZÄHLENWENNS) in die richtige Zelle selbst, bringt es richtig:
COUNTIFS(E4:E1362,"Requirement",S4:S1362, "<>4")
Wenn ich führen Sie die folgende code-Zeile, ich bekomme keine Fehler, aber anstatt, alle Summen sind gleich null.
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) & ")"
Erkannte ich, dass die ZÄHLENWENNS Vergleich wurde der Wert in der Spalte S der string "<>4". Und keine der Zellen enthalten, der string. Dies ist der Grund, warum alle meine Werte waren null. Ich will nicht den Vergleich auf, dass gegen string. Ich will den Vergleich auf Spalte S Wert NICHT gleich 4.
So, ich habe die Zeile (und Variationen, um es zu erhalten zu arbeiten):
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)"
So, ich bin ratlos. (1) habe ich manuell in die Formel eingeben und es funktioniert. (2) Baue ich es in VBA, und es nicht die Summe korrekt. (3) ich schaue nach oben, wie zu bauen, die Formel richtig, und ich bekomme Fehler immer und immer wieder. Wie es scheint, der einzige Weg, um diese Arbeit zu behalten-die Anführungszeichen innerhalb von Anführungszeichen, aber ich will nicht zu vergleichen gegen die saite.
Macht das Sinn? Ich bin mir nicht gefällt mein Arbeitsblatt mehr. Es ist nicht mehr lustig. 🙁
Danke Ihnen so sehr.
- Dein problem ist nicht das zitieren
Requirement
im VBA. SeanC die Antwort von unten ist richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, alle die
Chr(34)
sind immer in der Art von Sie sehen, die Formel richtig. versuchen Sie es mit""
um das Angebot für die Formel.mit Ihrem
Start
undFinish
Funktionen, würde die Formel ändern zu:Nun ja, Ein problem, das ich fand, es war ganz einfach, statt mit "," Sie müssen mit ";".
Es hängt von der version, die Sie verwendet, einige mit "," und andere mit ";". Sie können es einfach mal ausprobieren, ich hoffe das es dein problem gelöst hat.
und das zweite "Forderung" gibt, ich denke, Sie sollten verwenden Sie doppelte Anführungszeichen statt.
und für Ihren Fall Zu erfüllen Diese Bedingung:
Verwenden:
Ich denke, es Sollte Funktionieren (wenn ich verpassen Sie keine Anführungszeichen denken).
... Versuchen, das entfernen der chr(34) und die zusätzlichen Angebote - Es sollte genau so Aussehen wie die "Voraussetzung" Kriterien:
<>4
oder nicht? Ihre original-Beitrag zeigte, dass es in Anführungszeichen setzen muss??? - Wenn Sie es wollen, OHNE die Anführungszeichen, ändern Sie einfach das Teil in meine Formel oben",<>4)"
Nach dem ausführen eines quick-test mit dem ersten code
Leicht verändert-Konto für die Gruppen-variable Zelle G1 landet mit der folgenden Formel:
die, wenn getestet, funktioniert völlig in Ordnung, denn die zweite if-Anweisung S1:S20,"<>4".
Ich würde vermuten, dass das problem mit Ihrer ersten Aussage. Was ist in Ihrer Anforderung Reichweite und was Daten sind Sie versucht, mit.
Ich die Anforderung benannten Bereich um die Zelle D5, trat ich eine 5 in es und die Formel würde Schrittweite jedes mal, wenn ich fügte hinzu, eine zusätzliche 5 auf den Bereich E1:E20.
Ich begann dann Eingabe 4 s in den Bereich S1:s20 und diese verringerte meiner Zählung.
Bearbeiten
Das Letzte, was, das ich vorschlagen kann, ist in einer hilfsspalte in Spalte F, wertet Zeile, um zu sehen, ob Sie mit der Anforderung Bedingung, dann wäre es eine einfache Sache, um Ihre Formel: