- ベストアンサー
エクセルで、同じ項目が続く場合
例えば、セルA1~A5に「北海道」という文字が入っていて、B1,C2,D3,E4,F5にそれぞれ数値が入っている場合。「北海道」という列を一行にして、G1にB1~F5の合計を入れたいのですが・・・ 簡単な方法はないでしょうか?わかりにくい質問ですみません。 初心者で、よくわかりません。お願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
表が次のようになっているとします。 A B C D E F G 1 北海道 1 2 北海道 2 3 北海道 3 4 北海道 4 5 北海道 5 C1に =SUM(C2:C5) 、D1~F1にコピー G1に =SUM(B1:F1) 2~5行目を非表示で質問の通りになりますが・・・・ 少し拡張(想像)してみると、 A B C D E F G 1 府県 値1 値2 値3 値4 値5 合計 2 北海道 1 1 3 北海道 2 2 4 北海道 3 3 5 北海道 4 4 6 北海道 5 5 7 青森 7 7 8 青森 3 3 上の表のA~F列の2行目以下があったとします。 先頭に1行挿入して表題を付けます。G列2行目に =SUM(B2:F2) としてデータ数分下にコピーします。 データ部分(例えばA1)を選択した状態で、 データ→集計を実行 グループの基準=府県 集計の方法 =合計 集計するフィールド=値1~値5、合計にチェック 集計行をデータの下に挿入するにチェック →Ok これで集計が実行され、左のレベルのボタン『2』を押すと A B C D E F G 1 府県 値1 値2 値3 値4 値5 合計 7 北海道 1 2 3 4 5 15 10 青森 7 3 10 11 総計 8 5 3 4 5 25 が表示されるはずです。後半部分は状況を想像して書いています。ご参考に。
その他の回答 (6)
- suteneko
- ベストアンサー率25% (37/146)
では、 1.の式を =SUM(C2:F5)+B1に変更し 3.として C1のセルに=C2,D1に=D3 ・・・と言う風に表示したい数値のアドレスを入れてあげれば・・・? 一応、形にはなるかしら? ちょっと、3.がめんどくさいですけど・・・。 この例くらいなら何とかなるでしょうけど件数が増えると~~。 なんか、上手な手がないか考えてみます・・・
お礼
ありがとうございます。やりたいことは、そういうことです。 ただ、おっしゃる通り件数が数千になってしまったので・・・。マニュアルなどで探しているのですが、どんぴしゃのページが見つかりません。 もう少し続けさせてください。
- imogasi
- ベストアンサー率27% (4737/17070)
VBAで良ければ Sub test01() Dim sh1, sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") k = "" l = 1 s = 2 d = sh1.Range("a2").CurrentRegion.Rows.Count ' MsgBox d For i = s To d + s - 1 k = sh1.Cells(i, 1) For j = 2 To 8 'データのある列を探す If sh1.Cells(i, j) <> 0 Then Exit For Next j ' MsgBox j If k <> km Then 'A列内容が直前と変ったか l = l + 1 'シート2で次行を指す sh2.Cells(l, 1) = sh1.Cells(i, 1) 'シート2A列 End If sh2.Cells(l, j) = sh2.Cells(l, j) + _ sh1.Cells(i, j) 'シート2へ加算 km = sh1.Cells(i, 1) Next i End Sub テストデータ。()内はデータ入力のセルの位置 a(a2) 1(b2) a 2(c3) a 3(d4) a 4(e5) a 3(b6) b 1(b7) b 2(c8) b 3(d9) b 4(e10) c 2(c11) c 4(e12) 結果 a 4 2 3 4 b 1 2 3 4 c 2 4 (制約)改良も簡単ですが、上記では ・a,bは集まって出てくるものとする。 ・H列(=8)までのデータを対象としている。 ・一番左の列だけ足している。 (実行)ワークシートで ・ALT+F11(VBE画面) ・ALT+IとM(標準モジュール挿入) ・上記コードを貼り付け ・F5(実行)
- HELL_MET
- ベストアンサー率47% (16/34)
意味を取り違えているかもしれませんが・・・ >「北海道」という列を一行にして ここの意味が良く分かりませんが・・・ 「北海道の合計列をを作成する」と解釈し、上記の条件で答えを求めると。 まず、「北海道」の合計の列「北海道合計」を作成しその列の合計を 作成します。 A6にSUMIF($A:$A,"北海道",B1:B5)と書き、これをコピーします。 (セルの右下でマウスの矢印が+になったところで右にドラッグします) これで6行は北海道の合計行になります。 ここでG6にSUM関数で合計値を算出すれば一応ご要望のことは出来ると思います。 自分でも試してみましたので結果は出ると思います。
- suteneko
- ベストアンサー率25% (37/146)
1.G1に=SUM(B1:F5)という式を入れ、 2.2~5行目を表示しないにするのではだめですか? 1.はG5をクリックしてからツールバーの=をクリックしてSUM関数うをクリックし、計算させたい範囲を選択するか、直接指揮をG1に書き込む。でOKです。 2.は隠したい行を選択し、書式→行→表示しないでOKです。 書式→行→再表示で隠した行が再表示されます。 いかがでしょう?(^^)
補足
説明不足でした。。。一行にした時に、B1からF1にも数値(B1からF5に入っていた)を入れたいのですが。
- taranko
- ベストアンサー率21% (516/2403)
範囲を指定して、データ→集計 これでいかがでしょう。
- taknt
- ベストアンサー率19% (1556/7783)
セルA1~A5をセルの結合として 一つのセルにすることは できますよ。
お礼
ありがとうございます。「集計」で教えていただいたようにできました。 実は「北海道」の項目内にさらに分類があり、どうしようかと思っていたのですが地道にやりました。 なんとか完成しました。 皆様、どうもありがとうございました!!