Excle2007を使用しています。
シート1のデータをシート2に自動で転記したいと思っています。
シート1
作業件名ごとにその内容、作業者名が書いてある表。
1行ににつき作業1件
A列:日付
B列:作業件名
C列:内容
D列:作業者名
シート2
作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページ。
表の形式(見た目)はシート1とはまったく別のもの。
作業者ごとに空欄の表が既に作られており、
1ページ目:Aさん
2ページ目:Bさん
という風に、1シートに改ページしながら全ての作業者について1ページずつ一覧表になっている。
1ページは25行を使用しており、
Aさん(1ページ目)は1~25行(Bさん(2ページ目)は26~50行)となる。
1ページ目の表のうち、シート1のデータを入れられる行は11~21行。
3件あれば3行使って残り8行は空欄ということになります
日付欄はシート2のA11~A21
件名欄はシート2のB11~B21
内容欄はシート2のD11~D21
シート2には、作業者の住所や生年月日など、シート1にない項目があらかじめ入力されている。
いつもはシート1を入力後に作業者基準で並べ替えをして印刷し、
シート2の該当する作業者のページに手打ちでデータ入力しています。
シート1のデータをシート2の該当箇所に転記するだけなので、シート1が完成した段階で
シート2を自動で作れたら作業時間の短縮になると思い、考え始めました。
が、VBAに詳しくないため、どこからどう手をつけたらいいものかわかりません。
お詳しい方、お知恵をいただけましたらと思います。
不足情報等ございましたらご指摘いただけましたら補足をさせていただきますので
どうぞよろしくお願いいたします。
No.1
- 回答日時:
マクロを使わない方法です。
シート1ではA1セルに日付、B1セルに作業件名、C1セルに内容、D1セルに作業者名とそれぞれの項目名が入力されており、それぞれのデータは下行に入力されているとします。
作業列をE列に設けることにしますが、その前にシート2では作業者ごとにページを変えていくわけですがその作業者について順序を付けてシート2を作成するとしたら例えばシート1のG1セルから下行に1,2,3・・と番号を入力してH1セルから下行には対応する作業者の名前を入力します。
その上でE2セルには次の式を入力して下行にオートフィルドラッグします。
=IF(D2="","",INDEX(G:H,MATCH(D2,H:H,0),1)+0.0001*COUNTIF(D$2:D2,D2))
次にシート2ですが25行ごとに作業者が変わるようにとのことですので、A11セルには次の式を入力してD11セルまでオートフィルドラッグしたのちに21行目まで下方にオートフィルドラッグします。
=IF(OR(COLUMN(A1)=3,COLUMN(A1)>4),"",IF(COUNTIF(Sheet1!$E:$E,ROUNDUP(ROW()/25,0)+0.0001*(MOD(ROW(),25)-10))=0,"",IF(AND(MOD(ROW(),25)>10,MOD(ROW(),25)<=21),INDEX(Sheet1!$A:$C,MATCH(ROUNDUP(ROW()/25,0)+0.0001*(MOD(ROW(),25)-10),Sheet1!$E:$E,0),IF(COLUMN(A1)=1,1,IF(COLUMN(A1)=2,2,IF(COLUMN(A1)=4,3,0)))),"")))
これで作業者1番のデータが表示されます。
次に上の式をコピーしてA36セルに貼り付けし、D36セルまでオートフィルドラッグしたのちに46行目まで下行にオートフィルドラッグします。
次にA61に貼り付けし、同様の操作を行います。
このように入力する位置が変わっても式そのものは変わりませんので、何人の作業者でも同様に対応することができます。最初はセル位置を決めて式を入力しオートフィルドラッグを繰り返しますので面倒ですが、一度作成してしまえば後は変更することもないわけですから有効に使うことができるでしょう。
KURUMITOさま
アドバイスをありがとうございます。
ご教授いただいた式を参考に式を入れてみたのですが、どうもうまくいかなくて・・・
入力ミスや参照先に間違いがあると思うので、よく考えてみます。
シート2に入れる式はすごいですね。
こんなに難しい長い式は使ったことがないです!
ひとつひとつ確かめながら勉強させていただきます。
いただきましたアドバイスを参考にやってみてからお礼申し上げたいと思い
昨日おとといとがんばっておりましたら書き込みが遅くなってしまいました。
お詫び申し上げます。
ありがとうございました!
No.2ベストアンサー
- 回答日時:
質問が長い文章で表現しているが、エクセルの経験が少ないのだろう。
実は週に何度も質問が出る、よくあるパターンで>作業者名で抜き出し別シートに出したい、で判る。
エクセル関数は抜き出し問題は、既に回答があるように、式が長く複雑になり、エクセルの関数のよほどの勉強をして無いと、わかりにくいだろう。
フィルタで抜き出し、可視セルで捉えて、コピーして別シートに貼り付ける作業をすれば良いが、関数でやりたいのかな。
ーー
「imogasi方式」というのでやってみる.
作業列を1行余分に使ってしまうが。(下記例ではSheet1のE列)
例データ
Sheet1
A-D列 元データ E列は関数の結果
略 略説明山田山田1
運搬鈴木鈴木1
据付田中田中1
準備田中田中2
運搬山田山田2
保守山田山田3
E2の式は =D2&COUNTIF($D$2:D2,D2)
下方向に式複写
ーーー
Sheet2に行ってB1は山田と入れておく
C列C2は =INDEX(Sheet1!$A$1:$D$100,MATCH($B$1&ROW()-1,Sheet1!$E$1:$E$100,0),COLUMN())
D列に式を複写
C2:D2を下方向に式複写。
結果
A-D列
山田
略 略説明山田
運搬山田
保守山田
#N/A#N/A
Sheet3でB1に氏名を田中にして同じ位置にSheet2の式を複写すると
Sheet3
A-D列
田中
略 略据付田中
準備田中
#N/A#N/A
#N/A#N/A
#N/Aを見えなくする方法は、IF文で関数式を入れる行-1がSheet1の山田の件数を越えるときは空白にする式にする。
他の例はGoogleで江も「imogasi方式」で照会すること。
imogasiさま
アドバイスをありがとうございます。
おっしゃるとおり、あまりエクセルには詳しくありません・・・
少しでもできるようになりたいと思い、試行錯誤しながらやっております。
質問文が分かりづらかったようで申し訳ありません。
コピーして貼り付けることをはじめに考えたのですが、
結合しているセルがあちこちにあって貼り付けがうまくいかなかったため、
こちらでご助言をいただきに参りました・・・
アドバイスいただきました式を参考に式を入れてみましたら、
ちゃんと表示させることができました。
imogasi方式というのは、imogasiさまが考えられたものなんですね。
思いのほか簡単な式で解決できて驚いております。
検索をかけて、いろいろと参考にさせていただこうと思います。
アドバイスを参考にまずは自分でやってみてからお礼申し上げたいと思い、
ファイルと格闘しておりましたら書き込みが遅くなってしまいました。
お詫び申し上げます。
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル②
-
【マクロ】顧客番号にて一致さ...
-
エクセルVBA、別ブックへ転記す...
-
vba Bookを最小にせずに、UserF...
-
エクセルの計算
-
(マクロ)データをAブックからB...
-
Excelでセルの値が同じか...
-
指定文字の間に
-
エクセルでの作業計算方法について
-
エクセルの暗号化なしのバーの...
-
エクセルを使っていて2024/5/15...
-
【マクロ】必要な項目(列)の...
-
エクセル:一覧表に存在する文...
-
Excel
-
エクセル関数を教えてください
-
Googleスプレッドシートでファ...
-
Microsoft 365の Excel を使用...
-
はがきについて。
-
エクセルで 例えば 伊藤と名前...
-
【マクロ】その時、その時で変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報