エクセルで月の売上を年の売上表に転記する方法

このQ&Aのポイント
  • エクセルで月の売上を年の売上表に転記する方法を教えてください。
  • シート1の固定されたセルをシート2の列が変更されるセルに値を貼り付ける方法を教えてください。
  • シート1のA1に入っている月の売上の値をシート2のA1に貼り付け、翌月にシート1のA1に更新された値(翌月の売上)をシート2のB1に貼り付ける方法を教えてください。
回答を見る
  • ベストアンサー

エクセル 固定されたセルを列が変更されるセルに貼り付ける

エクセルで月の売上を年の売上表に転記したいと思っています。 シート1のA1に入っている月の売上の値をシート2のA1に貼り付け、 翌月にシート1のA1に更新された値(翌月の売上)をシート2のB1に貼り付けという様に、シート1の固定されたセルを(値は変更)シート2の列が変更されるセル(行は固定)に値を貼り付ける方法を教えてください。 シート1のA1からシート2のC1に貼り付け・・・と上記を繰り返し12回貼り付けが終わった時点でシート2のA1:L1を空白にし、次回貼り付けられるセルがシート2のA1に戻るようにしたいです。 ちなみにコマンドボタンにマクロを登録し使おうと思います。 どなたかご教示お願いします。 できたらそのまま使えるマクロを作っていただけると嬉しいです。 当方初心者です。 宜しくお願いします。

  • RAKUN
  • お礼率66% (2/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.3

お!列方向だ、しかもクリア? Sub Macro1() Dim Col As Long Col = 1 '空白欄を見つける While Sheets("Sheet2").Cells(1, Col) <> "" Col = Col + 1 Wend If Col >= 13 Then Range(Cells(1, 1), Cells(1, 12)).Clear Col = 1 End If 'シート1の1行目1欄(A1)をシート2の空欄に複写 Sheets("Sheet2").Cells(1, Col) = Sheets("Sheet1").Cells(1, 1) End Sub これでどうだ

RAKUN
質問者

お礼

ありがとうございました。 実際にマクロを動かしてみたところ完璧な仕上がりです。 そのまま使わせていただきます。

その他の回答 (2)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

Sub Macro1() Dim Row As Long Row = 1 '空白行を見つける While Sheets("Sheet2").Cells(Row, 3) <> "" Row = Row + 1 Wend 'シート1の1行目1欄(A1)をシート2の空白行に複写 Sheets("Sheet2").Cells(Row, 3) = Sheets("Sheet1").Cells(1, 1) End Sub こんな感じかな?

RAKUN
質問者

補足

ご回答ありがとうございます。 そのままマクロを貼り付け動かしてみたところ、 12回コピーし貼り付けしたするまでは完璧でしたが、その後シート1のA1の値が空白になりました。 私の説明不足なのですが、 12回コピーし貼り付けした後シート2のA1からL1の値をすべて空白にし、再度シート1のA1をコピーしシート2のA1に貼り付け・・・という様に繰り返しの作業も追加してほしいです。 自分でマクロをいじることも出来ませんので 申し訳ありませんが宜しくお願いします。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

たった12個なので、月ごとにマクロを作って、月ごとのボタンに登録してはいかがですか? 「ツール-マクロ-新しいマクロの記録」で、実際の操作をマクロに記録できます。 というか、月に一回、値をコピーするだけなんですよね? 手作業でも十分だと思うのですが。

RAKUN
質問者

お礼

ご回答ありがとうございます。 私も手作業でも十分だとは思いましたが、人から頼まれたことと、 応用の利くマクロだと思いましたので質問させていただきました。

関連するQ&A

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • Excel 隣接しない列に一発で値貼り付け

    Excel 隣接しない列に一発で値貼り付け 隣接する列に表示されたデータを、同じシートの隣接しない列に一発で値の貼り付けがしたいのですが、可能でしょうか?   A     B     C    D    E         1 チェック タイトル 名前1  名前2 説明 2 ○    野菜   人参   牛蒡  これは根菜類 3 ○          胡瓜       うり科の野菜です 4 5 ○    果物   バナナ  柿   暖色系の色です   G       H         I     J           K     …… 1 計算式   B列を値貼り付け 計算式   C列を値貼り付け  計算式  …… ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} *C列の空白の場合は全ての列が空白である(A列の式はそのため) *C列に文字がある場合のB、D、E列の空白には意味がある。 *コピーではなく値の貼り付けを行いたい。 *貼り付け左記の列は飛び飛びである。 *行の長さは可変する。 今までは、A列を「オートフィルタ」で「○」のみ表示させ、B-E列を1列づつH、J、L、N列へ貼り付けていました。マクロもいろいろ考えたのですが、初心者のため応用が出来ません。 関数でもマクロでも頑張ってトライしますのでお知恵を頂けますでしょうか。 PC環境:Win XP / Excel 2003

  • エクセルでの転記について

    関数を使って転記をしています。 Sheet1 が 売上げ全体 Sheet2 が 担当者別 という形で、 Sheet2のB1に、「Sheet1 のA1(担当) が 田中 ならば、Sheet1のB1を入れなさい。そうでなければ空白にしなさい。」という関数を使用し、売上げ金額、経費、利益・・・・等C1,D1,E1・・・と転記するようにしています。 転記自体はうまく行くのですが、担当が「田中」でない場合、空白になるため、10件の売上げの内、田中の売上げが4件しかなかった場合に残りの6件は空白行になってしまい、一覧としてみた場合見栄えが悪くなってしまいます。 原因は、Sheet1のA1が田中なら・・・,A2が田中なら・・・,A3が田中なら・・・と1行ずつ固定して式を入れているからだということは何となく解るのですが、10件の売上げの中の田中だけをSheet2を転記しなさいという関数が色々調べているのですが答えにたどり着けません。 どういった関数にすれば、可能なのでしょうか? どうぞよろしくお願いします。

  • 複数シートへのリンク貼り付けについて

    エクセルマクロ勉強中です。 シート1のセルA2の値をシート2のセルA1にリンク貼り付け。シート2のセルA2の値を シート3のセルA1にリンク貼り付け。このスタイルでシートを増やして行った時、それぞれのシート間でコピー、リンク貼り付けをしなくても自動的にコピー、リンク貼り付けが出来るマクロがあれば教えて下さい。 又、各シート名を変更してもリンク貼り付けの設定が変わらないように出来るでしょうか?

  • マクロで空白セルに貼り付ける

    エクセルで表を作っていますが、マクロを使って、空白セルの左隣の値をコピーし、空白セルに貼り付けをしたいのですが、うまくいきませんでしたので、教えてください。

  • Excel セルの数式を固定で値は自由に変更したい

    A1セルに何か入力されたら、B1セルに固定の文字「とりあえずビール」と入れる。 =IF(A1="","","とりあえずビール") この数式をB1セルに入れますよね? こういう形で初期値は決めておきたいものの、これを入力規則のリストから選んだり、手打ちで打ち直したりで値を変更するとします。 そうすると当然のことながらB1セルに入れた上記の数式は消えてします。 値を変更しても数式は残っていて、一度値を全部消してA1セルに打ち直した時にまたこの数式が動くような設定はできないのでしょうか? 数式を裏に隠すみたいな。 なんだか入力規則を使ってできそうな気もするのですが、調べてみてもそういう方法は見つかりませんでした。 今はデータを一度削除したい場合は、VBAを使って全消し後に数式を各セルに入れ直すというマクロで行っています。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • エクセルでセルの値が変更されたらマクロを実行

    エクセルで、セルの値が変更されたらマクロを実行したいと考えています。 具体的には、A1のセルに何か値が入力されるか、変更されたら、 作成したマクロを実行したいと考えています。 どうしたらいいのでしょうか。 ご教授ください。 よろしくお願いします。

  • セルに入っている日付を変更し、変更した日付でシートを作る

    セルA1に21年3月31日という日付が入っています。 このシートのセルA1に、20日後の、21年4月20日に変更し 新たにシートを作りたいです。これをマクロにしたいのです。 よろしくお願いします。

  • エクセルで空白セル”” と未入力セルの違い

    関数で セルA1 に=if(B1=0,"","入力済") としました。 セルの選択を素早くするためにショートカットキー「Ctrl+↓」を 利用しています。 通常の未入力空白セルは上記のショートカットで飛ばされて選択 されません。 これに対して上記関数で ""  として入力されたものを コピーして値だけを貼り付けたとしても 上記ショートカットキーで飛ばされず選択されてしまいます。 見た目は 全く同じ 空白セルです。(関数も値貼り付けをしているので消えています。) 未入力の空白セルと 関数で""と入力されて値貼り付けを受けたセルではどこが違うのでしょうか。 また、未入力の空白セルに 戻すには関数でどのように入力させればいいのでしょうか。もちろんDeleteKeyを使って未入力の空白セルに 戻るのですがそれではショートカットキーでとばせるメリットがなくなります。関数で大量に処理したいのです。 おわかりの方お教えください。

専門家に質問してみよう