[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データを横から縦にした時の転記 No2』(くろ)
いつもお世話になってます。
[[20150711095654]] 前トピの続きです。
H列の式( "=IF(一覧リスト[@キー]<>M3,SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[金額])-SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[合計2]),"""")"
)を
Worksheet_Changeにも入れたいのですが、どのように書いたらいいですか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
目的は???
テーブルに対して行挿入で追加、あるいはテーブルの下の行に入力して追加、いずれの場合も 式は自動コピーされますが?
間違えて、そのセルに何か入力して式を壊してしまった場合のためでしょうか?
やるなら、For Each c In r.Rows の下に c.EntireRow.Range("H1").Formula = "=IF(一覧リスト[@キー]<>M3,SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[金額])-SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[合計2]),"""")" でしょうけど。 でも、それなら、K列、M列についても同様では?(M列は非表示になっているはずなので、間違って壊すことはないと思いますが)
それと、式が壊れたら、上の行からフィルコピーでも修復できますし、テーブル再設定実行でも、修復できますよ。
(β) 2015/07/15(水) 17:34
ありがとうございます。
行の挿入と行の削除です。
上の行をコピー、テーブル再設定実行で解消するのは私ならできるのですが、
他の人が分からないと言われて。変に触られると私も直せないかもしれないので。
私も試してみたのですが、行の挿入や削除をすると1つ上の行の式(H列)がおかしくなります。
K列、M列は大丈夫でした。
(くろ) 2015/07/16(木) 10:28
追加で
For Each c In r.Rows の下に
c.EntireRow.Range("H1").Formula = "=IF(一覧リスト[@キー]<>M3,SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[金額])-SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[合計2]),"""")"
だと全て一覧リスト[@キー]<>M3となり結果が違うのですが、どうしたらいいですか?
(くろ) 2015/07/16(木) 10:38
11:08 訂正
あぁ、そうですね。失礼しました。
とりあえず
c.EntireRow.Range("H1").Formula = "=IF(一覧リスト[@キー]<>M" & c.row + 1 & ",SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[金額])-SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[合計2]),"""")"
この次の行というのをテーブル式で何か規定できるかもしれませんが不勉強なので。
(β) 2015/07/16(木) 10:46
ありがとうございます。
この行の上の行の式を変更したいので、
c.Offset(-1, 0).EntireRow.Range("H1").Formula = "=IF(一覧リスト[@キー]<>M" & c.Row & ",SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[金額])-SUMIF(一覧リスト[キー],一覧リスト[@キー],一覧リスト[合計2]),"""")"
に変更させてもらったのですが、合ってますか?
あと、見た目の問題なのですが、
行を削除や挿入するとM行が再表示されるので、
Columns("M").Hidden = True
も追加させてもらいましたが問題は無いですよね?
(くろ) 2015/07/16(木) 12:58
はい、c.Offset(-1, 0) は c.Offset(-1) でもいいですが。
列非表示も問題ないですね。
(β) 2015/07/16(木) 13:13
ありがとうございます。
なるほど、c.Offset(-1)でもいいんですね。
まだOffsetは使いこなせないので勉強中です。
(くろ) 2015/07/16(木) 13:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.