• 締切済み

エクセルで合計額を出す場合に。

月の出費を計算しようと、エクセルで表を作ることにしました。 現在海外生活のため、一つの列にドルと円の通貨が混ざっています。 たとえば、以下のような表です。 日   外食費  交通費   雑費    合計 1          1,000   1,500   2,500      10$                 10$ 2    3,000    500         3,500                5$            5$ というように、一日ごとに円とドルを別々に記入しています。 そこで、各項目の円、ドルそれぞれの合計を出すには、どのような関数を使用し、どのような計算式にしたら良いでしょうか? 合計 円 3,000   1,500   1,500   6,000    $  10$    5$           15$ 表の下部にこのように合計を出したいと思って、 IF?SAMIF?などと思ってやってみたのですが、上手く出来ません。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#2でおっしゃっているように、表は変な設計と思いますが、 「偶数(奇数)行を加算する」という問題に抽象化すると =SUMPRODUCT((MOD(ROW(A1:A10),2)=0)*(A1:A10)) A1:A10までが対象の例。 A3から始まるなら =SUMPRODUCT((MOD(ROW(A3:A10),2)=0)*(A3:A10)) です。 奇数行なら =SUMPRODUCT((MOD(ROW(A3:A10),2)=1)*(A3:A10)) -- 配列数式でも似た式でできます。 =SUM(IF(MOD(ROW(A3:A10),2)=0,A3:A10,0)) と入れて、SHIFT,CTRL,ENTERのキーを同時に押す。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >現在海外生活 お仕事でしょうか?ご自身で付けるのは別ですが、仕事でしたら、基本的に、円と外貨とを同じ合計欄(列)に一緒に出すことはありません。 $ の合計欄と円合計の列は別に設けます。 なお、経理では、$の計算は、全て円で書きます。備考などに、$を書いておきます。それから、10$ という書き方はないと思います。$10.00 です。それは、書式で整えます。 国内に戻って会計報告などする場合に、その清算した時の円レートに換算します。なお、クレジットカードの場合も、会社で清算する場合は、出張清算をした日のレートか社内レート(TTB)で計算します。差額が出ますが、その場合は、為替損益にします。 なお、会計報告が必要ないのでしたら、 A     B     C     D       E       F 日   外食費  交通費   雑費    合計    備考 1          1,000   1,500   2,500     $10.00               $10.00     D F列に、例えば、"D" という印を入れて、 =SUMIF(F2:F20,"D",E2:E20) とすればよいでしょうね。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

通常の関数では良い方法が思いつかなかったので、書式に「$」があるセルだけを集計するユーザ定義関数を作成しました。 まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。 シートに戻り  =SumDollar(A1:A10) のように式を入力してください。するとA1:A10のうち書式の先頭に「$」がつくセルだけの数値を合算して表示します。 Function SumDollar(ByVal rng As Range) As Single Dim r As Range  For Each r In rng   If IsNumeric(r.Value) And _      Left(r.NumberFormatLocal, 1) = "$" Then    SumDollar = SumDollar + r.Value   End If  Next r End Function 日本円の合計は  =SUM(A1:A10)-SumDollar(A1:A10) で出せるでしょう。 【重要】数値を入力した後に書式を「標準」→「通貨$」に変更した場合、計算結果は自動では更新されません。セルの書式設定が変更されただけでは関数式の自動計算のトリガにならないためです。 この場合は Alt+Ctrl+F9 で強制再計算させる必要があります。

tuyet
質問者

お礼

早々に詳しい回答を頂き、ありがとうございました。 どうやら、元々の私の作表の形式がマズイようで、簡単な関数でという訳にはいかないのですね。ユーザー関数を作成するなんて凄いですね。私は思いつきもしませんでしたよ。参考にさせて頂きます。

関連するQ&A