- ベストアンサー
エクセルでセル参照を使って自動計算する方法(マクロ必須?)
- エクセルでセル参照を使って自動計算する方法について質問です。
- 特定の条件に基づいて、セルの値を参照して自動的に合計を計算する必要があります。
- 複数のファイルに対して同様の操作を行う場合には、マクロを使用することが必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>「C列の値だけをG列にコピー」→「G列に値が無い行を削除」というマクロを組めば、数秒の作業で済みそうですね。(^ ^;)ゞ マクロの記述で出来ます オートフィルター C列で空白以外 を表示 行方向に1行目から1000行目位を選択 コピイ 別シートのA1を選択 形式を選択して・・ 値にチエツク入れて OK VBエディターで確認して Row(1:1000) とかあると思いますが オートフィルターで表示されている部分だけ 貼り付けられます。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
こういう仕事がらみの課題はVBAでやるべきだと思う。 下記は初歩的なものなので、これを聞いているようでは、今後別の件でわからないことばかり出てくるように思い、たやすくは無いと思うが。 (1)原データをA列でソートする(マクロの記録で出来る) ただ最終行は変動する(ソート範囲が変動する)が、その処理がわかりますか。下記コードのも出ているが。 (2)後はキー(A列の内容)が変わるまで、金額を足しこんで、変われば合(小)計をC列に吐き出せば仕舞いの簡単なプログラム。 例データ A列 B列 C列(算出) 1850 600 1850 300 1850 1580 2480 1851 2100 2100 1852 80 1852 1260 1852 800 1852 1260 1852 1260 1852 945 1852 945 6550 1853 1050 1853 420 1853 1260 2730 1854 1260 1854 945 1854 12600 1854 425 15230 1855 1575 1855 1600 3175 ーーー コード 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row m = Cells(1, "A") t = Cells(1, "B") For i = 2 To d If Cells(i, "A") = m Then t = t + Cells(i, "B") Else Cells(i - 1, "C") = t m = Cells(i, "A") t = Cells(i, "B") End If Next i '-- Cells(i - 1, "C") = t End Sub
- hallo-2007
- ベストアンサー率41% (888/2115)
A列の番号はまとまってあるのですね C列に(C2セルに) =IF(A2=A3,"",SUMIF(A:A,A2,B:B)) 下フィルしてみてください。
お礼
早速ありがとうございます。 SUMIF関数ですか…。知りませんでした。 エクセルの関数は、ネットで検索しても自分がやりたい事の例題が 掲載されていないとピン!とこないので、なかなか難しいですね。 早速試し、うまく計算されました!(感動です。) いままで、ちまちま手作業で範囲指定をしてオートSUMで合計を 出していた作業はなんだったのでしょう…。(苦笑) SUMIF関数を調べてみれば、確かに使いそうな場面が多いようです。 ある商品の支店毎の売上げをまとめたい場合に利用されるようですね。 ※DSUM関数との使い分けかな…? あと、更なる自動化を進めるなら 「C列の値だけをG列にコピー」→「G列に値が無い行を削除」というマクロを組めば、数秒の作業で済みそうですね。(^ ^;)ゞ 素早い回答をありがとうございました。