システムメンテナンスのお知らせ

エクセルで某使用料金の集計表を作成しており、
シート1で実数値を入力し、シート2で単位千円の提出用資料を作成しております。
単純に、シート1で入力された数値を、シート2で同じフォーマットで、INT関数を使用しているだけなのですが、
シート1で新規に行を挿入した場合、シート2でも同様に行を挿入し、数式をコピーして対応しております。

しかしながら、毎月、新規で行を挿入するケースが増え、油断するとシート2への行挿入を忘れるなどの事態が発生しております。

もっと簡易な方法で、シート1で作成した表の、千円単位に変換した表を作成することはできないのでしょうか?

できるだけ易しい方法を教えて下さい。

gooドクター

A 回答 (4件)

>シート2A1セルに上記数式をコピーしたのですが、NAMEの表示が出てうまくいきません。



考えられる理由1)
ご利用のシートが添付図左のように「A1」になっていないで,添付図の右側のように行も列も123表示になっているときに回答の式をコピーして入れると#NAME?エラーになります。
行も列も123表示で使っていたときは,数式は1行1列のセルに
=IF(INDEX(Sheet1!C,ROW())="","",INT(INDEX(Sheet1!C,ROW())/1000))
のように入れてコピーします。


考えられる理由2)
コピーして入れたのではなくご自分で数式を記入していて,誤記があると#NAME?エラーになります。
記入した式をよく再確認してください。
何が悪いのかご自分で見つけられないときは,あなたがご自分のエクセルに入れて実際にエラーが出ている「その数式」を実際のエクセルからコピーして掲示し教えてください。


考えられる理由3)
実は出ているエラーが#NAME?ではなく#REF!だった場合は,シート名が実際にあなたが使っているモノと違っています。
実際のシート名に数式を直さなければいけません。
「エクセルでの複数シートへの同時行挿入」の回答画像4
    • good
    • 0

こんにちは!


すでに回答は出ているようなので、参考程度で・・・

VBAでの一例です。
Sheet1のデータをそのままsheet2にコピー&ペーストし、数値のセルだけ千単位の表示にしてみました。
(INT関数をお使いだということなので、下3桁を切り捨てて表示するようにしています。)

Altキー+F11キー → VBE画面がでますので、画面左側にある「THISWorkbook」を選択し、↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j As Long
Dim c As Range
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1") '←Sheet名は実際のSheet名に!
Set ws2 = Worksheets("sheet2") '←こちらのSheet名も適宜変更
i = ws1.UsedRange.Rows.Count
j = ws1.UsedRange.Columns.Count
Range(ws1.Cells(1, 1), ws1.Cells(i, j)).Copy
ws2.Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
For Each c In Selection
If c <> "" And IsNumeric(c) Then
c = WorksheetFunction.RoundDown(c / 1000, 0)
End If
Next c
ws2.Cells(1, 1).Select
End Sub 'この行まで

Sheet1のデータが変わるたびにマクロを実行する必要があります。
参考になれば良いのですが・・・m(__)m
    • good
    • 0

シート2のA1セルに


=IF(INDEX(Sheet1!A:A,ROW())="","",INT(INDEX(Sheet1!A:A,ROW())/1000))
という式を入れてコピー,シート2の表範囲にずらり埋めて貼り付けておきます。

シート1で如何様に行挿入・行削除しても,全く何もしなくてもシート2はその姿を反映した表になります。
    • good
    • 1
この回答へのお礼

ありがとうございます。

シート2A1セルに上記数式をコピーしたのですが、NAMEの表示が出てうまくいきません。

なにか注意点あるのでしょうか?

お礼日時:2011/04/20 07:50

シート1に行を挿入するときにシートを「作業グループ化」してから行の挿入を実行する習慣をつけられてはいかがでしょう。



作業グループ化→まずSheet1のタブをクリックします。次にShiftキーを押しながらSheet2のタブをクリックします。
Sheet1とSheet2のタブが白くなり選択状態になります。
この状態でシート1の行選択をして行を挿入するとシート2にも同時に行が挿入されます。

解除するにはSheet1(2でも可)のタブ上を右クリックし出てきたメニューの「作業グループ解除」をクリックすれば元の状態になります。

その後関数をコピーでは。
    • good
    • 2
この回答へのお礼

早速の返答ありがとうございます。

作業グループ化、やってみました。が、うまくいきません。

シート1をクリック後、shiftキー押しながらシート2を選択し、シート1&2が反転した状態で、
行挿入しようと、行の上で右クリックしても、「挿入」メニューも白字に反転しており実行できません。

なにか方法が違うのでしょうか?

ちなみに、エクセル2007です。

お礼日時:2011/04/19 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング