• ベストアンサー

ExcelのVBAのSUMIFS関数をfxで使うと

ExcelのVBAのSUMIFS関数をfxで使うと正常に表示されますが、VBAで使うと負数がゼロ表示されます。何故でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1622/2462)
回答No.1

コードが間違っているとか、セルに代入してるならセルの設定で負数を0にするように書式設定されているとか。

seijiadb07
質問者

補足

回答ありがとうございます。間違っているかも知れません。 VBAの場合、合計範囲の値が -1→正常に計算されます。 -0.1→計算されていないのか、ゼロ表示されます。または少数点以下が除外されています。 使い方として間違っているのでしょうか?

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率65% (1622/2462)
回答No.4

マイナスありだから 今までの変数=Fix(Doubleの変数) のほうがいですね。

  • kkkkkm
  • ベストアンサー率65% (1622/2462)
回答No.3

> 変数の型を変更すると使っている記述が使えなくなるので出来ません。 使えないのがどのような記述かわかりませんが Doubleの変数=VBAのSUMIFS関数 今までの変数=int(Doubleの変数) にしてDoubleの変数を小数点の必要なところに使ったらいいのではないですか。

  • kkkkkm
  • ベストアンサー率65% (1622/2462)
回答No.2

> -1→正常に計算されます。 > -0.1→計算されていないのか 小数点以下が表示されないということですか。 変数に入れているのなら Dim 変数 As Double もしくは Dim 変数 As Single セルなら書式設定で小数点以下の桁数 を変更してください。

seijiadb07
質問者

補足

変数の型を変更すると使っている記述が使えなくなるので出来ません。

関連するQ&A

  • エクセル関数 SUMIFS

    エクセル関数 SUMIFS について教えてください。 2010年版で作成した集計表ですが、2000年版でSUMIFS関数が使えません。 なんとかその関数だけでも使いたいのですが、どなたか良い方法を教えてください。 ほかの関数の組み合わせでもよいですし、どんな方法でもいいですので・・・。

  • エクセル2010のSUMIFS関数について

    A列に日付、C列に文字列、E列に数値があります。 仮に、日付は2013年4月だけ、文字列は”事務” だけに条件を絞ってE列の数値を合計する場合、エクセル2000では =SUMPRODUCT((C$1:C$1000="事務")*(TEXT(A$1:A$1000,"yyyymm")="201304")*E$1:E$1000) でうまくいきました。 こんどエクセルが2010になったので、あたらしくできたSUMIFS関数でやってみようと思い =SUMIFS(E:E,C:C, ”事務”,TEXT(A:A,"yyyymm"),”201304”) としましたが「数式が正しくありません」とエラーになってしまいます。 SUMIFS関数だと列のセル範囲を指定しなくていいので使いたいのですが・・・。 F列を作業列とし、ここにA列の日付をyyyymm形式の文字列とすれば =SUMIFS(E:E,C:C,"事務 ",F:F,"201304") で出来ますが、ほかにいい方法はないでしょうか?

  • エクセルVBAのFormat関数について

    エクセルVBAで使われているFormat関数を使って"1000"を"1,000"と表示させようとすると他のPCでは正常に表示されるのですが私のPCでは"1"と表示されてしまいます。 エクセルの設定だと思うのですが、どこをいじって良いか分かりません。誰か教えてください。

  • SUMIFS関数について

    スプレッドシートでSUMIFS関数を使って別のタブにある表から条件に合う合計を集計しております。一つのシートではSUMIFS関数使って正しい数値を反映することができました。ところが同じ様式のシートをコピーしたものに同じ数式を入力したところ値が0になってしまいました。 数式が合っているのに数値が反映されない場合の原因が分かりましたらご教示いただけますと幸いです。

  • SUMIFS関数について

    宜しくお願いいたします 先にSUMIFの件で質問して=SUMIFS関数で出来るとの回答を頂き よく確かめずに出来たつもりで質問を締め切りましたが(反省)何としても出来ませんが どこか間違いが有るでしょうか =SUMIFS(B:B,A:A,"本",A:A,"えんぴつ")の式で0と表示されてしまう A  B 本  500 えんぴつ  200 ペン  100 本  500 まんが  300 ペン  100 えんぴつ  50

  • エクセルSUMIFS関数で教えてください。

    エクセルのSUMIFS関数について教えてください A1セルに1月~A12セルまでに12月と入力しています。 B1~B12に売り上げの合計を入力しています。 例えば3月、7月、 8月の合計を出したいときにはどうすればいいですか? 例えばA~F列の行を複数範囲で検索することは出来るのですが 下方向A1~A10までの複数範囲をしたいのですができません。 すいませんが至急教えてください。 よろしくお願い致します・

  • エクセル2007 SUMIFS

    SUMIFS関数を使用して複数条件の集計をしたいと思ったのですが、 うまくいかず、SUMPRODCT関数で対応しました。 SUMIFS関数について質問ですが、 SUMIFS関数の合計範囲は1列と決まっているのでしょうか? また、合計範囲・条件範囲は同じ行でなければならないのでしょうか? そのように変更するとうまくいきます・・・ うまくいかなかった状況は下記のとおりです。 表1  A   B   C   D   E 1   4月  4月  4月  4月 2東京  5   2   4   1  3東京  1   8   3   2 4神奈川 7   0   3   9 5千葉  8   5   4   2 6千葉  2   1   1   1 7埼玉  4   8   5   2 表2   A    B   10    4月 11東京  26 12神奈川 19 13千葉  24 14埼玉  19 表2のB11に『SUMIFS(B2:D7,A2:A7,A11,B1:E1,B10)』 (絶対参照を省いてい書いています) 仕事上は解決しましたが、SUMIFSでうまくいかなかったことが気になるので、ご教授願います。

  • SUMIFS 読み

    EXCELの関数で SUMIFSの読み方は サムイフズでしょうか?? サムイフスでしょうか??

  • SUMIFS関数の質問

    エクセルで A列のあたいがE1セルに一致し、B列の値が文字列"00"でないC列の数値を合計したい場合、 これまでエクセル2003の時は =SUMPRODUCT((A2:A15=E1)*(B2:B15<>"00")*C2:C15) のように書いてきました。 これをエクセル2010で、SUMIFS関数にしようと思い =SUMIFS(C:C,A:A,E1,B:B,<>"00") としてみました。 ところが、テストでわずか14行でやってみると答えが違うのです。 わたしのSUMIFS関数の理解があやまっているのでしょうか? 教えてください。 テストに使った2行目から15行はこんな感じです。E1セルには文字列 A があり、 =SUMPRODUCT((A2:A15=E1)*(B2:B15<>"00")*C2:C15)  は27を =SUMIFS(C:C,A:A,E1,B:B,"<>00")  は28を返します。 A 00 1 A 01 2 A 02 3 A 03 4 A 04 5 A 05 6 A 06 7 B 07 8 B 08 9 B 09 10 B 10 11 C 11 12 D 12 13 D 13 14

  • SUMIFS関数とDSUM関数について。

    >例えば、 >A、B 小学校のアンパンだと、DSUM関数 >A小学校のアンパンだけだとSUMIFS関数 >A小学校のアンパンと葡萄パンだとDSUM関数 >A、B小学校のアンパンと葡萄パンは、DSUM関数 ・・・を使用するのが適している。    って事を先生は仰りたかったんだと予想されます。 その予想から推察するに、 >→和を出す というのは、 SUMIFS関数で >A小学校のアンパンと葡萄パン を算出するには、 「A小学校のアンパンだけ」と「A小学校の葡萄パンだけ」を それぞれ別々に算出して、 その2つの「和を出す」という手順が必要になりますよ。 なのですが、これをSUMIFS関数で表すとどうなるのでしょうか? ご教授いただけないでしょうか?すみません。