• ベストアンサー

エクセルの質問(結合と集計に関して)

tosi0000の回答

  • tosi0000
  • ベストアンサー率28% (8/28)
回答No.2

私の想像ですが、「マクロの記録」を使って作成されているのではないでしょうか。 shift + ctrl + 矢印キーで範囲選択できますので、なるべくVBAで記述しない方法を書きます。 (1)は前の方の回答の通りです。 もしもVisual Basic Editorで開いた時に、 ActiveWindow.Closeの記述となっているようでしたら、 ActiveWindow.Close (True)へ変更してく下さい。 (2)の手順は (1)ファイル1を立ち上げて、1行を選択。 (一番左の1をクリックです。) (2)shift + ctrl + ↓で範囲選択でコピー。 (データがある範囲のみ選択されます。) (3)書き出し先シートの1行を選択して、「コピーしたセルの挿入」 これを20回繰り返します。 (表が下にどんどん伸びて行きます。) (4)書き出しシートのA1を選択。 (5)shift + ctrl + ↓ を行い、そのまま→を押すと並び替えしたい範囲が選択されます。 (6)並び替え処理実行。 これでデータが揃います。 (3)に付いてはVBAを書く方法しか思い付きませんでしたので、(2)で作られた最後の行へこの記述を追加してください。 For Each MyObj In Range("A:A") If Trim(MyObj.Text) = "" Then Cells(MyObj.Row, MyObj.Column + 1).FormulaLocal = "=SUM(B1:B" & MyObj.Row - 1 & ")" Cells(MyObj.Row, MyObj.Column + 2).FormulaLocal = "=SUM(C1:C" & MyObj.Row - 1 & ")" Exit For End If Next 条件としてA列の途中に空白のセルがあっては正常に動作しません。

pentanpe
質問者

お礼

(3)の記述、分かりました。 A列の空白セルがあれば、その右にB列合計、C列合計を入れる処理ですね。 回答ありがとうございました。

pentanpe
質問者

補足

その通り、「マクロの記録」で作っていました。 shift + ctrl + 矢印キーで、データの存在する範囲を指定できるとは知りませんでした。 No.1さんの回答を参考にして、マクロは作成できたのですが、No.2さんの(3)に書いてあるVBAの記述がどういう処理をしているのか是非理解したいので、もう少し勉強してみます。 理解したとき「お礼」を書きますね。

関連するQ&A

  • エクセルの集計で

    エクセルの集計で以下のようなことを早くする方法がないかお聞きします。 A列に仕入先B列に仕入金額が入ったデータがあり (A列は仕入先によって行数が異なります)、 C列で仕入先ごとの集計をしたい場合、 現在は〇〇商店の1ヶ月の合計を出すためにオートザムで B列の〇〇商店のみのデータを集計しています。 仕入先の行数が同じならばコピーしていけばいいのですが、 違うので何か簡単に集計する方法がないかお尋ねします。

  • エクセルで集計を

    エクセルのあるシートのA列にランダムな時刻が昇順に並んでいるとします。A列の時刻がいくつあるか、時間単位に集計したいのですが、どなたかご教授ください。例えば、A列が順に、9:00:01、9:01:10、9:07:20、9:08:40、9:11:57、9:12:30、・・・というように並んでいるとして、9:00~9:10までに何件、9:10~9:20までに何件というように集計したいのです。 ちなみにA列の件数は数千件あります。

  • エクセル 集計方法を教えてください

    エクセル2003について教えてください。 宜しくお願いします。  A B C 1 2 あ   2 0   あ 3 2 い い 4 1   あ 5 2 あ あ 上記のような表で、「B列にあ」と「C列にあ」と「B列C列共にあ」の場合のA列の合計値5を導きだすには どのようにしたら良いのでしょうか? 上記のようなあの合計・いの合計と20種類の合計値を 200行ぐらいから集計したいのですが宜しくお願いいたします。

  • Excelで集計する方法

    Excelをほぼ使ったことがない初心者です。 1列目にa~zの文字がランダムに並んでいて、 2列目に0か1の数字が入力されているとします。 このときに、それぞれの文字ごとに1が何個あるか数えたいのですが、 どうすればいいのでしょうか? a  0 c  1 f  0 a  1 b  0 a  1 のように並んでいるものを aの合計  2 bの合計  0 cの合計  1 のように集計したいです。

  • エクセルVBAについてアドバイスお願いします。

    見出し列A1からG1かけてあり A1→大分類 B1→小分類 C1~G1→A×Bの情報 となっています。 A B C D E F G ア 1 ア 2 ア 2 ヒ 1 ・ ・ ・ ヒ 2 ヤ 1 ヤ 1 ヤ 3 ちなみに A列昇順→B列昇順に並んでおり、行数は毎回不定です。 ここから、A×Bの組合せが同じ行ごとにまとめて、新規のブックを作成し、そこに張り付けて、A見出し+B見出しの名前で、csvファイル形式で保存したいです。 今は、オートフィルターをかけて、A列選択→B列選択をしてコピー、を全ての組み合わせごと行っています。 大分類も小分類も、数は不定で、名称も毎回様々です。 この作業をVBAで組み立てるとしたら、どのようになるでしょうか? 詳しい方、お力をお貸し下さい。 よろしくお願いします。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • エクセルでの集計について

    初心者です。 エクセルでの集計について教えてください。 sheet1にプルダウンやフォームで入力し、sheet2へ集計させたいのですがやり方がわかりません。 例えばプルダウンの場合、sheet1のA1で都道府県を選ぶとB1には対応する市町村が選択できるようにします。C1には任意で数字を入力していくとします。それを何行か入力します。はsheet2に、A列には都道府県別、B列にはAに対応する市町村、C列には任意の数字が合計されるようなことをしたいのですが・・・。こんな説明でご理解いただけるか心配ですが、なんとかやさしくお教えください。(フォームでの入力がスマートで格好がよさそう・・・。)マクロ等々もぜひともやさしくお教えください。

  • エクセル:マクロを使って自動集計するには?

    エクセルのマクロで下記のような事をしたいのですが、どなたか教えて下さい。 セルA2~A100に数種類の商品が商品ごとに入力  されているとします。 1個しかないものもあれば10個入力されているものも あります。 セルB2~B100にはA列の商品の売上金額が入力さ れています。 そこでセルC列に商品ごとの合計売上金額を計算する事 はできませんか? 1個しかない商品はその横のC列のセルに、数個あるも のはその一番下の商品の横のC列のセルに数個の合計  を、という具合に。 よろしくお願い致します。

  • excelで質問です。

    excelで質問です。 例えば図のようにA1からA7にC1からC28のB1からの合計を表示させたいのですが=C4などの 表記のほかに4行目ごとの数字をA1からに返す方法はありませんでしょうか? 実際は行数が多く、表示を返す場所もはなれたH列にあったりという状態です。 初心者なのでどなたかお教えいただけると助かります。

  • エクセル 集計について教えてください!

    エクセルで、特定の列に該当する条件に当てはまる数を数えたい時、 どの関数を使えばいいでしょうか。 エクセル得意な方、教えてください。 たとえば、 A列=果物名(もも、りんご、みかん、ぶどう…etc) B列=仕入れた店名(全国各地の店名) C列=仕入れた個数 D列=入荷した日にち を、日ごとに年度でまとめたエクセル表あるとします。 別シートに、 果物ごとに、月別でいくつ仕入れたか、集計したい時にはどの関数を使えばいいでしょうか。 A2、A3、…~果物名 B2行、C2行、…~各月 として、仕入れた数を合計する、という表にしたいです。 (どの店で、という条件は不要です) SUMIFSを使えばいいのかなと思ったのですが、 月別の条件になると、別の関数もいるのかとか、 ただ数を数えるなら、COUNTIFでいいのかとか、色々考えていたら、 どう組み合わせればいいかわからなくなりました…。 オートフィルタやマクロではなく、関数で作りたいのです。 教えてください。 どうぞよろしくお願いします。 ちなみに、エクセルは2010を使っています。