電子書籍の厳選無料作品が豊富!

お助けください.

オートサムの通常の使い方はわかるのですが,特殊な使い方をしようとして躓いております.

A列の数値([A2]以降に入力されている)を合計したいのですが,
その合計結果を[A1]のセルに表示させたいのです.

今後も入力は続くので,オートセルを使用したいのですが,

[A1]のセルに,オートセルを用いて "=SUM(A:A)" と入力すると,
重複計算になってしまうようで,合計が0と表示されてしまい,合計計算ができません.

どのようにすれば,[A1]のセルに,[A2]〜[A∞]の合計が自動で入るようにできますか?

ご教授願います.

A 回答 (7件)

案1


1. 1行目以外のセルとして仮にA2セルを選択する
2. [Ctrl]+[F3]名前の定義
 名前 : 桜
 参照範囲 : =$A1
 (A列の一つ上のセルを参照する)
3. A1セルに
 =SUM(A2:桜)

案2
ママチャリさんの回答をヒントに
=SUM(A2:INDEX(A:A,ROWS(A:A)))
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.
ひとつ教えていただきたのですが,

=SUM(A2:INDEX(A:A,ROWS(A:A)))

この式を解説していただけますか?
いろいろ調べたのですが,私の力では理解できませんでした.

お礼日時:2016/07/03 20:16

#6の訂正


× For Each p In Array(41, 0, 40, 41)
◯ For Each p In Array(41, 0, 40, 38)

サンプルをアップロードして置きましたので、もしよろしかったらお使いください。

掲示板のCustom UIも、マクロコードも、両方共ダウンロード版とは若干の違いがあります。

http://bit.ly/29a2cP6
ダウンロードパスワードは、この質問HTMLの手前の番号-7桁の数字です。

使う前には、Excelファイルのプロパテイからブロック解除を行ってください。今回は削除期限は書きません。ただ、長くは置いていません。

今回は、カスタマイザーをCustom UI Ediotr に替えてみました。

http://openxmldeveloper.org/blog/b/openxmldevelo … (場合によっては、サイト開けると変なメッセージが出ますが、これは、このツールを知っている人なら分かる洒落だと思います。)

参考した場所
https://msdn.microsoft.com/ja-jp/library/office/ …

Office 2010 と書かれていますが、これ以降も有効です。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます.

お礼日時:2016/07/03 20:16

こんにちは。



あくまでも、オートサムにこだわって、「Σボタン」をカスタマイズしてしまいました。これは、上でも、下でも、横でも、合計が出せるようにしました。

これは、customUIを加えたもので、カスタマイズしないと、マクロを貼り付けても動きません。

その場合、中身だけ取り出して、Quick Access Tool Bar のボタンにつけても可能です。

このオートサムは、その数式が循環参照を起こすと、そのセルの数式を消してしまいます。さらにもう一度ボタンを押すと、正しく数式が入ります。いずれ、この先に、参照されることを期待します。

[Office Ribbon Editor(Ver4.42)] を使用しました。
リボンカスタマイザー(今のところ、私が使える唯一のカスタマイザーです)もう少し、便利な道具があるとよいのですが、現在は、MSのコントロールリストを参照しながら作っています。


CustomUI(Excel 2010以上)
'-----------
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/cust … onLoad="Ribbon_Load">
<commands>
<command idMso="AutoSum" onAction="CustomAutoSum"/>
</commands>
</customUI>

で、以下がCallBacks で、標準モジュールに貼り付けます。

'Callback for AutoSum onAction
Sub CustomAutoSum(control As IRibbonControl, ByRef cancelDefault)
 Dim r1 As Range
 Dim Fml As String
 Dim p As Variant, p2 As Variant
 Const XD As Long = xlDown
 Dim acRng As Range
 Dim tmpRng As Variant
 Dim fmlRng As Variant
 cancelDefault =True
 'up,dn, lf, rt
 Set acRng = ActiveCell
 For Each p In Array(41, 0, 40, 41)
  If acRng.Value = "" Then
   Range(ActiveCell, ActiveCell.End(XD - p)).Select
  End If
  With Selection
   If p = 0 Or p = 40 Then
    Range(Selection, .Cells(.Cells.Count).End(XD - p)).Select
   Else
    Range(Selection, .Cells(1).End(XD - p)).Select
   End If
  End With
  If WorksheetFunction.Count(Selection) >= 2 Then
   If IsEmpty(tmpRng) Then
    Set tmpRng = Selection
    For Each p2 In Array(2, -4123)
     On Error Resume Next
     Set r1 = Nothing
     Set r1 = tmpRng.SpecialCells(p2, 1)
     On Error GoTo 0
     If Not r1 Is Nothing Then
      If IsEmpty(fmlRng) Then
       Set fmlRng = r1
       'fmlRng.Select
      Else
       Set fmlRng = Union(fmlRng, r1)
       'fmlRng.Select
      End If
     End If
    Next p2
   End If
  End If
  acRng.Select
 Next
 If IsObject(fmlRng) Then
   Fml = fmlRng.Address(0, 0)
  acRng.FormulaLocal = "=SUM(" & Fml & ")"
  If Not Intersect(acRng.DirectPrecedents, acRng) Is Nothing Then
     acRng.ClearContents
  End If
 End If
End Sub
「オートサム(AutoSum)を用いて,1」の回答画像6
    • good
    • 0

ビジネスでは常に合計が最上部に現れていて、ウィンドウ枠の固定も設定しやすいその使い方が基本だと思います。



Excelも2007以降であれば、数式はあまり気にしなくてOKです。
A2とA3だけに数値が入っている状態なら数式は
=SUM(A2:A3)
ですよね?
このときA2:A3を選択した状態でCtrl+Lを押下すると、選択範囲をテーブルに変換できます。
一度テーブルを作成すれば、その後テーブル範囲の下の行や右の列に何かデータを加えると、計算式も込みでテーブル範囲が広がってくれます。もちろん間に行や列を挿入しても数式は自動的に内容を変更して更新されます。

テーブルの解除はテーブル範囲内のセルをアクティブにして、[デザイン] タブの [ツール] グループで [範囲に変換] をクリックすれば解除されます。
    • good
    • 1

素直に、=SUM(A2:A1048576)



ちょっと汎用性を持たせるなら、=SUM(INDIRECT("A2:A" & ROWS(A:A)))
    • good
    • 1
この回答へのお礼

ありがとうございました.

お礼日時:2016/07/03 20:16

こんばんは!



極端に行数が多い場合はおススメできませんが・・・

A1セルに
=SUM(INDIRECT("A2:A"&MAX(IF(A2:A5000<>"",ROW(A2:A5000)))))

配列数式になりますので、Ctrl+Shift+Enterで確定!
とりあえず5000行目までは対応できる数式です。

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 1

エクセルって表などが特にそうですが、とりあえず設定してから選択セルを修正するって作業が多すぎるような気がしますが、


計算式を直接変えるとか、青色の枠を一つ減らすとかすればよいと思いますが、自己流なので、説明が難しいですね。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!