• ベストアンサー

エクセルの移し変え作業(A表のデータをコピー、B表にペーストする)で

エクセルの移し変え作業(A表のデータをコピー、B表にペーストする)で もっと楽で時間の掛からない方法があれば教えてください。 現在のやり方 A表に、1日24時間毎のデータが1年分(365日×24時間=約8800行)あります。 上(1行目は1月1日1時のデータ)から、下(最終行目は12月31日24時のデータ)に向かってあります。 このデータをB表に移します。 B表の1行目は、1月1日のデータで、右方向に1時~24時までのセルがあります。    2行目は、1月2日のデータで、右方向に1時~24時までのセルがあります。      〃    〃   〃   〃   〃    365行目は、12月31日のデータで、右方向に1時~24時までのセルがありま   す。 データ移し変え方法は、 A表から1日分(24データ)をコピー、B表の右方向へ行列を変更してペーストしています。 次に、1月2日を同様にしてコピー、ペースト、365回これをくりかえして1年分をまとめています。 この方法で7年分済ませましたが、作業してくれる方(私を含めて)が全員泣いてます。 花粉症なら分かっているけど風邪だと言い張って作業を休んだり、急に里帰りしたり、目が疲れるから3時間だけ、他にしなくてはならないことが、腱鞘炎だ、など、単調な作業でやたら時間がかかるので嫌われています。 今後、残りの作業年数が20年あり、エクセルの機能の中にこれが楽にできる 方法があれば、是非、是非、教えてください。 マクロは知らないので、出来るだけ、一般的な方法で。よろしくお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.11

原因不明ですね。 〔第3段階〕 Sheet2のA1に  =INDEX(Sheet1!$A$1:$A$8760,(ROW()-1)*24+COLUMN(),1) としてみてください。 『Sheet1』はシートタブに表示されているシート名です。 『$A$1:$A$8760』はとりあえず『$A$1:$A$500』でもかまいません。 だめなら、 〔第3段階〕 Sheet1のA列のデータの入っている範囲に名前をつけます。  Sheet1のA列のデータの入っている範囲(A1からA列のX行まで)を選択して、   挿入→名前→定義で『DATA』を入力 Sheet2のA1に  =INDEX(DATA,(ROW()-1)*24+COLUMN(),1) とします。 2.66がでればコピーします。 2.66がでなければ、  セルA1で =(ROW()-1)*24+COLUMN() がどうなるか教えて下さい。  セルA2で =(ROW()-1)*24+COLUMN() がどうなるか教えて下さい。  セルB1で =(ROW()-1)*24+COLUMN() がどうなるか教えて下さい。 Excelのバージョンが関係する? Indexを使ってみています。

abouka
質問者

お礼

nishi6様 誠に申し訳ないことが分かりました。 今まで、数式を入れて数式欄が表示されている左横のチェックで 入れておりました。 そうすると、値の更新シートがでてきますが、意味が分からず 恐ろしくてキャンセルしておりました。 たまたま OK をクリックしましたら、数値が正常に出てくる ことに気がつきました。 すると、その間何回もわずらわしいことを、nishi6様に考えていただき、 大変申し訳ありません。 教えていただいた、#1の回答で、すべてができた訳です。 本当に、ごめんなさい。 私の無知のため、時間を取らせたことをお侘びします。 この質問でマクロに手をつけたので、その結果が確認できてから 締め切りします。 ありがとうございました。 追伸;明日はちょっとでなく、ピノキオで鼻高々です。    いい忘れたこと:エクセル2002を使ってます。

その他の回答 (16)

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.17

締め切られる前にもう一つ。 先のアドバイスで『例えば、A1~A365に数値1~365を入力しておき』としたのは、質問の例では、『Y1~Y365に数値1~365を入力しておき』としたほうが良いでしょう。 そうすればA1~X1に入っている式をダブルクリックでオートフィルすれば、A365~X365までが一瞬に求まります。 ダブルクリックのオートフィルを覚えたのは数年前に友人から聞いたものです。当時のExcel97でも使えました。解説本に載っているという話は聞いたことがありません。 お仕事が順風満帆で何よりですね。 もう、お礼は不要ですよ。

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.16

《以下、先刻ご承知の内容でしたらごめんなさい》 数式をコピーする際、ダブルクリックのオートフィルを利用されていますか? 例えば、A1~A365に数値1~365を入力しておき、B1~X1に入っている式をダブルクリックでオートフィルすれば、一瞬で365行に式がコピーされます。 もう少し具体的に言いますと、 式が入っているB1~X1を選択した状態で、セルX1の右下へマウスカーソルを置き小さな+記号が出たらダブルクリックします。するとA列に数値の入っている行の最後(365列)まで、一瞬に式がコピーされます。 《上記、先刻ご承知の内容でしたらごめんなさい》

abouka
質問者

お礼

ubonoti01様 アドバイスありがとうございます。 ダブルクリックのオートフィルの方法は、知らなかったので、実験です。 列、行の大きさが異なってもできました。また、列、行ともに、 途中に空(から)のセルがあっても出来ました。 これまた、ビックリ機能です。資料を整理するのに利用出来ますね。 このような使い方というのは、皆さんは解説本で会得されたのでしょうか? 今回お願いした質問への回答を使ったエクセル作業は、順風満帆で快調そのもの、後ろから台風の追い風が来ているみたいなスピードで、楽に、笑いながらよそ見してても仕上がります。実感として今までの3日分作業が3時間終了!!! 別件;今夜、マクロのやり方についての連絡をいただけなかったら、質問を締め切ります。相手様の立場では、1から教えるのは大変なことで疲れだけが残るでしょう。本来は私がマクロをある程度理解してから教えてもらうのがスジであり、基本的な立場を忘れておりました。その方に重荷をかけたことを今恥じております。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.15

(追報) 1.Test01()は終わったようですね。ただ心配なのは最下行が、41Aまでと書いておられるが、8760行目(=24*365)に365zが入っているはずで そうなっていませんか。 2.Test02()ですが、新規作成のBook1のSheet1のA列のデータに対し、プログラムが加工して、Sheet2のA列からZ列かつ1から365行までに書き出します。これで良いか良く考えてください。 3.OKWebの画面の幅に合わせかたが判らなくて、苦しんでいます。下記の/より/までは行を変えずに打ち込み、かつ/では必ず改行してください。 スペースを入れるところは@マークを入れます。 4.本例ではSheet1のA列の1列をSheet2のAからZ列に並べ替えていますが、Sheet1には何列も有るのではないかと思う。 最大10列に限り(10×24<256<11×24) 増やすようプログラムを改められます。 5.「私の解釈では」と書いておられるところは違います。ブックを新規で作成すると、取りあえずSheet1,Sheet2、・・・が出来ますが それをそのままテストで使うことを前提にして、WorkSheets(”Sheet1”)とかWorkSheets(”Sheet2”)とかとしています。 5.本番のBook(ファイル名)のデータが入っているSheetにおいて、下記の操作をしてください。 Test01()はテストデータ作成用ですので、本番では実行不要。 <本番のVBA Test2()実行操作> ●本番の元データの入っているシートの画面を開く。 ●その画面のメニューバーのツール-マクロ-VisualBasicEditorを順にクリックして、その後メニュバーの挿入-標準モジュールをクリックし、左のプロジェクトエクスプローラー部に「Module1」があらわれるから、それをダブルクリックして右側部分の白紙画面に前記のテストの時のTest02()以下をそのままコピーし貼りつける。 (テストの時のBook1のSheet1のModule1のTest02()からEndSubをコピーし、Book1を閉じても、本番のデータの入っているSheetのModule1に貼りつけることが出来ます。) ●Test02()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニューバーの「実行」をクリックすると実行される。 @は1スペース、/は改行を示す(我流です。またVBEがスペースを自動的に入れる個所がありますが、そのままにまかせて良い。) Sub@test02()/ Worksheets("sheet1").Activate/ For@i@=@1@To@24 * 365/ j@=@i@Mod@24/ If@j@=@0@Then/ j@=@24/ k@=@Int(i/24)/ Else/ j@=@j/ k@=@Int(i/24)@+@1/ End@If/ Worksheets("sheet2").Cells(k,j)@=@Worksheets("sheet1").Cells(i, 1)/ Next@i/ End@Sub/

abouka
質問者

お礼

imogasi様 先日はマクロの件で、ご指導いただきましてありがとうございます。 それ以来、テストしましたが結果はまだできません。 私がマクロについて基礎的な解説書を読み、一般的な理解ができた後に imogasi様のご回答が分かるはずです。そうします。 または、私の知人でマクロの理解者がおれば、imogasi様の回答書を元に 解説してもらいます。 imogasi様に折角回答をいただきましたが、ご負担をかけたことをお侘びします。 今後も、私に、教えて!問題が起これば投稿する機会があろうと思いますので、 その際は、よろしくお願いします。 ありがとうございました。 (これにて、質問を締め切ります)

abouka
質問者

補足

imogasi様 今晩は!追記ありがとうございます。 1)sheet1の8760行目は365Zが入って、sheet2への移し変えは   期待したとおり、365行になっています。 2)実際のデータは、A列からF列まであります。   (テストはA列が、sheet2へ移ればよいとの考えですが、    6列とも入れてテストしています。) 3)"私の解釈"は、今回はっきり理解できました。  (行の後ろに引っ付けるというのは、実行した時、そこが赤い色がついたので   理解できました。) 本番の実行で: ご指示のように、進めたつもりですが、、、、 左の枠の上部にVBAProject(Book1)があり、Module1 と Module2が見れます。 その下に、VBAProject(本番データのタイトル)とModule1があり、Module1が 反転しています。 右に入っているプログラムの中で、Worksheets("sheet1").Activateの1行に 黄色に色がついてます。(なぜがは分かりませんが) "sheet1"を本番データのシートの名前”data”をいれても同じ結果でした。 実行すると、 『実行時エラー'9' インデックスが 有効範囲にありません』とメッセージが出ます。 最初からやり直して、何回か実行してみましたが、その都度 同じメッセージです。 私の操作ミスがどこにあるのか判断していただけませんか?

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.14

aboukaさん、大変なお仕事、同情します。わたしも興味ありましたので回答を逐次拝見していました。 すでに解決されておられると思いますが、まだ締めきっていないので、立ち寄らせていただきます。 わたしは#1-nishi6さんの回答で出来ました。 aboukaさんの「#印が目いっぱいに広がってます」と言うのは、単にセル幅が狭かったためではないんですか? 因みに、Sheet1のA列、A1~A9999に数値1~9999を入力し、あらかじめSheet2のセル幅を狭くしておいてからnishi6さんの式を入れると、「#印が目いっぱい」になります。これらのセル幅を広げてやると、数値がバッチリ表示されました。テスト済みです。 #1-nishi6さんの回答が一番判りやすく簡単と思います。

abouka
質問者

お礼

ubonoti01様 ご心配かけましたが、昨夜、回答番号12の xxsadayanxx様の方法で 解決しました。 すぐ、nishi6さんの、#1-の指示どおりにセットすると、解決しました。 この原因は、私の操作ミスです。 10年間パソコンを触っていましたが、初めて『値の変更シート』が出てきて、恐ろしいので常にキャンセルしていたのでした。 (1週間前にエクセル2002に変えたからかな?と思いますが) 昨夜、nishi6様にはお詫びのご連絡をしました。(#11の回答欄 参照) まだ、締め切りしていない理由は、今夜マクロのことで、#8と#13-回答者imogasi様のご指示でマクロをテストします。 初めてマクロに触るので、何が飛び出すか、不安と興味でいっぱいです。 今回もそうですが、新しい数式(INDIRECT、OFFSET、加えてマクロ)などを 教えてもらえるこのgoo教えてシステムには感謝、感謝です。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.13

朝6時30分補足を見ました。出勤時間まで時間がなく、解答を入れられません。本日昼に解答を考え、夜解答を 入れさせていただきます。悪しからず。 コピーは使いません。Sheet1は貴殿の原データであり、 Sheet2は自動的にできあがるシートの名を指します。 WorkSheets(”●”)の●の部分のSheet1やSheet2に 本番では、原データシート名と結果シートのシート名を プロウラム中に置き換えて入れるのです。

noname#1523
noname#1523
回答No.12

No.5の回答をしたxxsadayanxxです Sheet2のA1に式を入力してその式をA1~X365にコピーと言うのは A1~X365の"全てのセル"に式をコピーして下さいと言う意味なのですが・・ どうも、返信の内容では、A1に式を入力して、1行目を2~10行目に コピーされているのではないでしょうか?? (B~X列に式が入力されていない) 式のコピーは色々な方法が有りますが 以下の手順通りに試して見てください 1)Sheet2のA1に下の式を入力(返信に記載された式でOKです)    =OFFSET(Sheet1!$A$1,(ROW()-1)*24+COLUMN()-1,0,1,1) 2)A1を右クリックして"コピー"を選択 3)X365をShiftキーを押しながらクリック 4)Enterキーで式がコピーされます

abouka
質問者

お礼

xxsadayanxx 様 ご回答ありがとうございます。 コピーの方法およびOFFSETの数式を教えていただき、 指示どおりにしました。 煙草に火をつける時間も無く、なんと簡単に、 数学的に、エクセレントに、エクセルの機能はすばらしいのでしょう!! 多量のデータを瞬時に入れ込むことができました。 xxsadayanxx様は一般人と表示されておりますが、 高度のエクセルを日常的にお使いになっていらしゃると 思われます。 もし、一般人とすれば、私は無知人となり、明日パソコンを 中古屋に出し、枝ぶりの良い樹を探した方が 世のためかも知れないと思われます。 今回作業で現在初めてマクロの世界に触れてます。 こちらの結論と、もう1つの方法を教えていただいた後で 締めきりますので、少し時間をください。 驚いた夜でした。今夜はゆっくり休めます。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.10

編集モードはF2を押すことの意味で使いました。 〔第1段階〕 まず、Sheet2は全部クリアしてください。A列から24列の削除でかまいません。 〔第2段階〕 クリアしたら、Sheet2のA1を選択して、  = を入力、  Sheet1タブをクリック  Sheet1のA1を選択  Enter これで、Sheet2のA1には 2.66と表示され、算式は『=Sheet1!A1』となっているはずです。 これがうまくいっていなければ、Sheet1に問題があります。 〔第3段階〕 うまく2.66がでれば、この算式を修正して  =INDIRECT("Sheet1!A"&(ROW()-1)*24+COLUMN()) にして下さい。面倒かもしれませんが入力してみてください。『Sheet1』が大文字、小文字の違いがあるかもしれません。 〔第4段階〕 算式を修正して2.66がでれば下、右にコピーします。 〔第1段階〕~〔第4段階〕まで行って、補足をして下さい。

abouka
質問者

補足

nishi6様 〔第1段階〕〔第2段階〕はご指示どおりに出てきます。 〔第3段階〕で、式入力を何回か試みました。  手入力を数回やコピーでもやりました。  入れた式です =INDIRECT("sheet1!A"&(ROW()-1)*24+COLUMN())  〔第3段階〕の式の入力では私はミスしていないと思います。  しかし、〔第4段階〕では  結果;sheet2のA1セルに #REF! が現れ、2.66の数値が出てきません。  このsheetには、sheet1、sheet2、しか入れてありません。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.9

>=INDIRECT("Sheet1!A"&(ROW()-1)*24+COLUMN())が、{ }で囲まれて・・・ { }は意図していません。 =INDIRECT("Sheet1!A"&(ROW()-1)*24+COLUMN())を登録する時、Ctrl+Shift+Enterで配列数式になっているようです。 普通の算式なので登録する時は普通にEnterです。 Sheet2のA1を選択状態にして、ファンクションキーF2を押して編集モードにして、Enterとします。2.66が表示されればOKです。下、右にコピーします。これでもダメかな?? 前の質問の回答が尾を引いてた? ちなみに >※ 実際の作業は、sheet1のC2がデータのトップで下方向、 >sheet2ではB8がデータのトップで右方向に24個です。 このままの状態で算式をセットすれば、Sheet2のB8は  =INDIRECT("Sheet1!C"&(ROW()-8)*24+COLUMN()) となるはずです。うまくいってから確かめられてはどうでしょうか。

abouka
質問者

補足

nishi6様へ 今度の数式は普通の算式として正しく入れました。 Sheet2のA1を選択状態にして、ファンクションキーF2を押して編集モードにして、Enterとしますが、数値の2.66は出てきません。 F2を押して、Enter してますが、F2を押しながら、どこかで編集モードにするのであれば、その操作はしておりません。 素人考えですが; テストは2日分であるため、数式内のどこかに変更箇所があるような 気がしますが、 =INDIRECT("Sheet1!A"&(ROW()-1)*24+COLUMN()) の中にはありそうもないですね。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.8

なんか悲惨な様子が伝わってきましたので、解答する気になりました。ただVBA(俗に言うマクロ)なので、判らないといわれるかもしれないですが、まあ考えてそっくり真似することを検討してください。 他の方の関数作成、式のコピー方式も結構複雑なようで 下記の法が簡単かも。 下記Test2()は10秒以内に終わります。Test1()も10秒以内です。 もし下記を使われるなら、まずTest1()を実行して、sheet1のテストデータを良く見て、私の理解が、実情と違っていないか考えて、良ければTest2()を実行して下さい。 データは特徴をモデル化してあるつもりですので、。 そしてsheet2を良く見て貴殿が考えている通りのパターンに並べ替えられたか良く考えてください。 それから本番のデータにTest2()を実行してください。 '--------<テストデータの作成> Sub test01() b = "abcdefghijklmnopqrstuvwxyz" For i = 1 To 24 * 365 j = i Mod 24 If j = 0 Then j = 24 k = Int(i / 24) Else j = j k = Int(i / 24) + 1 End If Worksheets("sheet1").Cells(i, 1) = k & Mid(b, j, 1) Next i End Sub (Next iの上の行「1)」はWorksheets("sheet1")の行の後に引っ付けてください。横幅制約の為に無理に改行されていますのでご注意。この()の部分はプログラムでないのでプログラムの打ち込みの時は省くこと。) '-----<行と列の日別に入れ替え> Sub test02() Worksheets("sheet1").Activate For i = 1 To 24 * 365 j = i Mod 24 If j = 0 Then j = 24 k = Int(i / 24) Else j = j k = Int(i / 24) + 1 End If Worksheets("sheet2").Cells(k, j) = Worksheets ("sheet1").Cells(i, 1) Next i End Sub (Next iの上の行はWorksheets("sheet2")の行の後に 引っ付けてください。横幅制約の為に無理に改行されて いますのでご注意。この()の部分はプログラムでないのでプログラムの打ち込みの時は省くこと。) '---<VBAの実行のし方> ●エクセルでのメニュバーのファイル-新規作成をクリックしsheet1の画面を開く。 ●メニュバーのツール-マクロ-VisualBasicEditorを順にクリックして、その後メニュバーの挿入-標準モジュールをクリックし、左のプロジェクトエクスプローラー部に「Module1」があらわれるからそれをダブルクリックして右側部分の白紙画面に上記のTest1()以下とTest2()以下をそのまま入力する。 ●し終わったら、Test1()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニュバーの「実行」をクリックすると実行される。 ●出来たsheet1を良く見てください。 ●Test2()のEnd subまでの途中ならどこでも良いからカーソルをおき、メニュバーの「実行」をクリックすると実行される。 ●出来たsheet2を良く見てください。 ●Test2()でプログラムのやっている理屈や内容が知りたければ、補足に表明していただければ説明文を作ります。 ●私の方法に関わらず、いかなる方法でやるにせよ、実本番データは別にバックアップを取って置いて実行すること。

abouka
質問者

補足

imogasi様 ご返事が遅くなり失礼しました。 マクロ以外の方法をテストしてきましたが、まだ最終まで到達できません。 imogasi様より教えていただきました方法でマクロの世界に入ります。 ご指示どおりに●1、●2、●3、●4、まで進めてできたsheetを 見ております。 sheet1の、A列にA1から下方向に、1a,1b,1c,と1が24行並び、 25行目から2a,2b,2c,が 最終の 41a まで見れます。 しかし、私のデータと、それをペーストするsheetはまだ入れてありません。 以下、私の不明な点の質問となります。 1)sheet3、にデータを入れ、sheet4にペースト先のものを入れるのでしょうか? 2)以下の文章の内容指示ですが、これをどこに貼り付けるのしょうか? を 指  示してください。   ※ Next iの上の行はWorksheets("sheet1")の行の後引っ付けてください。     → 私の解釈;       マクロ-テスト-1とシートに名をつけておりますが、       下側にあるsheet表示欄のsheet1のタイトルの後ろに       スペースを空けずに、Cells(i, 1) = k & Mid(b, j, 1) と       つけるのでしょうか?        ご指示の後方に("sheet2")につけることも書かれております。       そうなると、データなどはsheet3以降に入れるのでしょうか?  夜分遅くなり、ご連絡が遅く失礼します。  私ごとですが、まだ、2時間位この作業を進める道を探しますので  起きております。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.7

>#印が目いっぱいに広がってます Sheet1のA列に入力されている値は何でしょうか? 算式はうまくいってて、表示形式で『#####』が表示されている可能性があります。 Sheet1のA列とSheet2のセルの書式設定の表示形式を一致させることと、セル幅を広くしてみてください。 Sheet1のA列に縦に並んだ数値を、Sheet2の365行×24列に配置しなおしているだけですよね。

abouka
質問者

補足

nishi6様へ 1)Sheet1のA列に入力されている値は何でしょうか?   ただの数値です。最初のセル:A1 は2.66という数値です。 2)Sheet1のA列とSheet2のセルの書式設定の表示形式を一致させること。  どちらも、表示形式は標準となってます。 3)セル幅を広くしてみてください。   広くすると、#REF! となっており、セルの窓に、数式の   =INDIRECT("Sheet1!A"&(ROW()-1)*24+COLUMN())が、{ }で囲まれて   います。 4)Sheet1のA列に縦に並んだ数値を、Sheet2の365行×24列に配置しなおしてい  るだけですよね。   作業はそのとおりですが、今テストの段階で1ヶ月分31日だけで   テストしてます。 頭の悪い生徒を持った先生の立場が、お分かりになりましたか? 理解が悪くて、ごめんなさいね。

関連するQ&A

  • エクセル98のコピーペーストについて

    エクセル98を使用しております。 そこで、下記のようなコピーペーストが可能かどうか教えて頂けないでしょうか? また、コピーペースト以外に方法があれば、教えて頂きたいのです。宜しくお願いします。 例えば、 A1セルに10、B1セルに15、C1セルに20とあったとして、 A50セルに「=A1]答10、B50セルに「=15」答15、C50セルに「=C1]答20 と置いきたいのです。 つまり、縦方向のデーターをコピーして、横方向に貼りつけていきたいのですがどうでしょうか? 手作業で1つ1つ入れて行くしか方法が無いのでしょうか?

  • excel のコピー&ペーストについて

    会社で表(Excel2000)を作らなければならなくなりました。 3列を一つの区切りとして10ケ並んでいる表で、1行目の1・4・7・・・・・を別のシートに抽出しました。これをコピーして1行目の2・5・8・・・・次に3・6・9・・・とコピー&ペーストしてゆきたいのですが、単純にコピペすると全然違うセルをペーストしてしまいます。一つ一つ指定してゆくと2日から3日この表を作るのにかかってしまうと思います。説明下手で申し訳ありませんが、これに使える関数とか方法があれば教えて下さい。

  • エクセル 同じ作業(行の削除,コピーペースト)を簡略化したい。

    いつもありがとうございます。 Excel2000を使ってデータの加工をしています。 3000行くらいあるワークシートがあります。 1.その中から削除したい行があるので,いちいち行番号のところで右クリックをして削除をしています。 これをもっと簡略化する方法はないでしょうか。 2.コピーペーストを繰り返す作業もしています。左手の小指がツリそうでプルプルしているのです。こちらも更に簡略化する方法はないでしょうか。 説明が拙くて申し訳ありません。

  • エクセルで工程表・作業表を作っています 塗りつぶしの自動化についてお教えください

    エクセルで工程表・作業表をつくることになりました。 A1セルに項目名「年月日」A2セルに項目名「曜日」 以下A3 A4・・・と作業氏名が入っています B1から右方向に2005/01/01の形式で連続して 年月日が入っています B2はB1を参照してWeekday関数を入れて 曜日を表示しています。 ここからなのですがA3から下方向に作業者名が入力されていますが 曜日に関係なく ばらばらに「休」と文字を入れて この作業者がその日は休みであることをあらわしています。 ある人のセルに数字を2種類入力して 作業日数分塗りつぶして その作業の種類を色で塗り分けたいのですが 2005/11/24 ある作業者の欄に数字を3(三日間という意味) を入れると 24日25日26日が自動的に塗りつぶすようなことは 可能でしょうか? そして たとえば25日の欄に「休」を入っている場合には 24日は塗りつぶして 25日は「休」のままで塗りつぶさなくて 26日と27日をまた塗りつぶすという判別の方法があればと 思っています。 関数で可能なのか もしくはセルをクリックなどして ユーザーフォームを立ち上げて入力を促すマクロなどでないと 難しいのか いかがでしょう? 文章がわかりにくかったら申し訳ありませんが 補足の解説をさせていただきますので よろしくお願いいたします

  • エクセルでコピー・ペーストができない

    エクセル2003を使って集計表を作成しているのですが シート(4月)のセルをコピーしてシート(5月)に貼り付けようと しても右クリックメニューの貼り付けがグレーになっていて ペーストできません 原因が何なのかわかりません シートやセルに保護は掛かっていませんし 複数シートを選択してもいません 右クリックメニューでコピーまではできるのですが困っています

  • エクセルで、sheet1とsheet2の数値を提出表スタイルに並べかえて移動したい。

    皆様にお世話になります。 エクセルを使って、sheet1の数値とsheet2の数値データを提出表スタイルに並べかえて移動したいのです。 sheet1の表は、A2~FZ2に○年1月1日~6月30日の日付、  列方向の A2~A25は1時~24時までの表示があり、B2~FZ25間のセル (4344個)にデータが並んでいます。 sheet2の表は、A2~FZ2に○年7月1日~12月31日の日付、 列方向の A2~A25は1時から24時まで表示、B2~GC25間に (4416個)のデータが並んでいます。 提出表スタイルの表は、A8に1月1日の日付があり、下方向に1月2日(A9)、 3日(A10)と最終行の12月31日はA372です。 右方向は、A7~Y7に1時~24時までの時間表示、数値をインプットする最初のセルはB8で、B8~Y372までデータが入れば完成です。 sheet1、sheet2の数値を提出表のスタイルに(簡単に時間をかけずに)移し変える方法があれば教えていただけるようお願いします。 (以前同じような質問をいたしましたaboukaです。その時教えて貰いましたすばらしい回答でその作業は急ピッチで進められました(現在も続行中)。 今回新しい問題が出て、以前の回答方法を応用できないか?を考えたり、エクセル応用編を見ましたがギブアップします。よろしくお願いします)

  • エクセル 数式をコピーペーストしたい

    具体的に話をします セルA1に単価 セルB1に数量 セルC1に結果 ↑↑↑ この式をセルA2~100行目までペーストしたいです 普通にセルA1の数式をコピーしてペーストすると出来ませんでした まさか1行1行数式を入力するわけにはいかないので簡単なやり方があれば教えて下さい

  • エクセルのコピー&ペーストについて

    エクセルで作ったある表をコピー&ペーストで、セルの寸法(幅とか高さ)も、コピー元通りペーストする方法を教えてください。 いつもペーストの結果がセルのデフォルトの寸法でしか出来ないので困っています。 どうぞ宜しくお願い致します。

  • エクセルのコピー&ペーストについて

    エクセル2010を使用しています。大量のエクセルデータを、指定された表に張り付けたいのですが、指定された表の行が2列ずつセルを結合されている為、うまくいきません。何か良い方法をご存じの方、教えて下さい。

  • エクセルの表、ワードの表をパワーポイントの表へ持ってくる方法

    パワーポイントには、既に10行10列の表が作ってあるとします。 エクセルのエリア(A1:A4)を選んで普通にコピーして、パワーポイントに移動して、表の(1,1)をクリックして、通常のペーストをすると、ある時は、期待通り4つのセルにセルごとに正しくコピーされる。別の時には、パワーポイントの一つのセルに、データが4行になって入ってしまう(これは、形式を選んでコピー「値」に対応すると思います)。何が結果の違いを生んでいるのか、分かっていません。 ワードの表のデータをコピーする場合も、上記と同じです。 質問は、「パワーポイントへのデータのペーストに関し、どう言うルールがあり、うまくデータを表の形でペーストするにはどのようにすれば良いのか」ということです。 パワーポイントの表、100行4列にデータを、エクセル、ワードから持ってこなければいけません。 よろしくお願いいたします。

専門家に質問してみよう