質問
【エクセル】行挿入で数式もいっしょにコピーしたい
- 投稿日時:2008/10/12 10:35
こんにちは。
エクセルで現金出納帳を作成しています。
例えば・・・
A列 B列 C列 D列 E列
1 日にち 科目 収入 支出 残高
2 10/1 光熱費 10000
3 10/2 給料 200000 190000
4 ・・・・・・
E列には=IF(E2="","",IF(AND(C3="",D3=""),"",E2+C3-D3))
という数式を入れています。
後からデータを足したい時(例えば3行目に挿入)に、行挿入をすると
数式もコピーされ、以下の行の数式も更新されるようにしたいのですが、どのようにしたら良いのでしょうか。
ご回答宜しくお願い致します。
回答 (5件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.5ベストアンサー20pt
- 回答日時:2008/10/13 10:22
#3の回答者です。
再度、書き直しておきます。ある程度Excelを使ってきた人なら、使ったことがある機能だと思いますが、行の挿入と式のコピーを同時にするのは、マクロでなくても出来ます。
# 「リスト」に変更してください。挿入すれば、式はコピーされます。
というのは、
Excelのバージョンにもよりますが、近年のバージョンなら「リスト」という機能があります。
リストは、範囲をマウスで選択してから、「データ」--「リスト」--リストの作成
です。タイトル行が、太字になったりするので、それは、気に入らなければ、書式を訂正してください。なお、そのリスト範囲にカーソルを持っていくと、ドロップダウンボタンが現れてしまいます。印刷時には現れませんが。
- 質問者のみ
- この回答にお礼をつける
No.4
- 回答日時:2008/10/13 02:19
もう少し条件がはっきりするといいのですが…
1.行挿入した時点で挿入行と他の列が一気に自動更新されるようにしたいのですか?あるいはあとでセルをコピーする手作業が入ってもいいですか?
2.セルE2は空白ですか?繰越残高が必要と思われますが…
3.これは想像ですが行挿入したときE列の計算式の計算対象がずれるのが解決できればよいのではと思ったのですがどうでしょうか?
ちなみに「一気に自動更新」はマクロでないとできません。
- 質問者のみ
- この回答にお礼をつける
No.3
- 回答日時:2008/10/12 15:04
こんにちは。
最初に、数式がおかしくありませんか?
収入があったときに、残高を出すのでしょうか?
------------------------------------
A B C D E
1: 日にち 科目 収入 支出 残高
2: 繰越残高 10000
3: 10月1日 光熱費 10000
4: 10月2日 給料 200000 200000
(等幅フォントでないと、ずれて見えますが、全角空白で整えています)
E3:の式です。
=IF(COUNT(C3),$E$2+SUM($C$3:C3)-SUM($D$3:D3),"")
>数式もコピーされ、以下の行の数式も更新されるようにしたいのです
それは、「リスト」に変更してください。挿入すれば、式はコピーされます。
- 質問者のみ
- この回答にお礼をつける
No.2ベストアンサー10pt
- 回答日時:2008/10/12 11:20
>行挿入をすると数式もコピーされ、
これは簡単そうで簡単ではありません。マクロが必須ですし、それも本格的にやるならクラスモジュールという、あまり一般的ではない「難しめ」のテクニックが必要です。
そこで、もう少し簡単な方法を回答します(それでもマクロは必要です)
それは「A列からD列に値を入力したとき、E列に数式が入力されていなかったら、E列の一つ上のセルをコピーする」というものです。
ご要望とは多少意味が違いますが、これでも十分省力化になるのではないでしょうか
以下のマクロを現金出納帳のシートを開き「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けてください。貼り付けたら現金出納帳のシートを再び開き、行挿入して値を入力してみてください
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng, r As Range
Set rng = Intersect(Columns("A:D"), Target)
If Not rng Is Nothing Then
For Each r In rng
If Cells(r.Row, "E").HasFormula Then
Else
If r.Row > 1 Then
If Cells(r.Row - 1, "E").HasFormula Then
Cells(r.Row - 1, "E").Copy Destination:=Cells(r.Row, "E")
End If
End If
End If
Next r
End If
End Sub
なお「上のセルの式をコピー」する方式にしたのは、マクロで式を直接書き込む方式にすると、シートの式を変更したときにマクロも変更する必要があるからです。質問者さまにそれが可能かどうかわからないため「コピー」にしました。ですからE列の上のセルに式がないときは何もしません。その点はご承知おきください
- 質問者のみ
- この回答にお礼をつける
No.1
- 回答日時:2008/10/12 10:50
エクセルを複数起動するのではなく、仮に 現金出納帳 を Aファイル コピーを持って生きたいファイルを Bファイル とすると、
1)Aファイルを開く
2)エクセルの左上にある ファイル(F) をクリックする
3)開く(O)をクリックする
4)Bファイルを開く
5)ウインドウ(W)をクリックする
6)Aファイルを選択する
※画面に出ていないときには下向きの二重のカギカッコをクリックしてください。
7)コピーする行の数字(画面一番左)を選択してコピーする。
8)Bファイルを選択して行を選択し、貼り付けする。
これでできると思います。
できなかった理由は、エクセルを複数起動させていたために数式が文字に変換されてコピーされたためだと思います。
- 質問者のみ
- この回答にお礼をつける
このQ&Aを見た人はこんなQ&Aも見ています
- 4excel 行を追加した場合のSUM関数の変化について
- 5エクセルで数式の結果が反映されない(自動計算になっているのに)
- 6エクセル行挿入 計算式のコピーができない
- 7エクセルで行挿入しても計算式がずれない方法
- 8エクセルで重複しているデータの抽出のしかたを教えてください。
- 9EXCELの日付データを文字列に変換したい
- 10EXCEL(IF関数)でCELLの色を変える。
- 11Excelで入力したデータを他のシートにも反映したいです
- 12EXCEL 自動的に行を追加
- 13EXCELでの重複データカウント方法について
- 14Excel2003のリストに相当するExcel2007の機能は?
- 15エクセル(Excel) ワイルドカード *(アスタリスク) 使用方法について。
- 16VLOOKUP関数で複数のセルが該当した場合全て表示したい
- 17エクセルで列の全ての項目に文字を追加したい
- 18エクセルで、条件に一致した行を別のセルに抜き出す方法
- 19エクセルで行を挿入したときに勝手に書式をひきつがな
注目の記事
OpenOfficeでページ番号をふる方法
無料で使用できるOffice系ソフトとして人気の高いOpenOffice。バージンアップも進み、かなり本家に近い感覚で使用できるようになって来ました。ここではそんなOpenOfficeを使いこな...
このカテゴリで人気のQ&Aランキング
- 4EXCEL・複数条件がある場合のCOUNTI...
- 5イラストレータの無料ダウンロード...
- 6エクセル STDEVとSTDEVPの違い
- 7パワーポイントの無料ダウンロード...
- 8エクセルで重複しているデータの抽...
- 9エクセルのセルに入力した文字数
- 10excelからexcelへの差し込み印刷
- 11エクセルで複数のグラフを重ねる方法
- 12エクセルにおいて、シートの保護を...
- 13Excel 指定の文字列を含むとカウン...
- 14EXCELの日付データを文字列に変換し...
- 15Excelの行列幅をcmで表示したい
- 16Excelで、エラーの #DIV/0! を表示...
- 17Excel文書が読み取り専用になって解...
- 18エクセルで列の全ての項目に文字を...
- 19エクセルに写真の貼り付けが出来ま...
- 20PDF化されたEXCELの表をEXCELファイ...