• 締切済み

Excelの表作成について

はじめまして。 上司に頼まれまして営業所と従業員についての管理表をExcelで作っております。 そこで是非ご教示いただきたいのが、添付ファイルのA型の表をB型の表に効率的に変換する方法です。 最初は手作業でやっておりましたが、データが膨大で、この調子だと期日までに間に合いません。 何とぞよろしくお願いいたします。

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.5

## マクロが使えない前提で(使えるとすぐだけど。) (1)B2の名前の最初のところへカーソルをもっていく。 (2)ctrl +shift + →を押す。   B2から??2(最後の列)まで選択される  (但し、途中にデータが入っていない列がない前提・・・あっても複数回繰り返せば対応可) (3)コピーする。 (4)B型表に移動して、今から入れたいC??にカーソルを持ってきて、形式を選択して貼り付けで行列を入れ替えのチェックOn。 縦に並んで貼り付けられる。 (5)A型表に戻り営業所名をコピーする。 (6)B型表に移動して、名前の列でctrl +↓を押すと一番したまでいくから、一列左に移動して、 ctrl +shift + ↑を押す。 営業所名を貼り付けたい範囲が選択される。 (7)貼り付けをする。 これをくりかえす。

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.4

マクロは使えますか? もし、マクロが使えるのであれば、割と簡単に出来ます。 以下は、Excel2003のマクロの例です。 A型の表は、A列に営業所名、B列以降にメンバーの名前。最初の行は1行目。 作成するB型の表は、G列に営業所名、H列にメンバーの名前。最初の行は1行目。 という前提で組んであります。A型、B型の位置を変える(シートを変えることも可能)場合は適宜修正してみてください。 -------------------------------- Sub OKWave()   x = 1   y = 1   p = 1   Do While Cells(x, y).Value <> ""     y = y + 1     Do While Cells(x, y).Value <> ""       Cells(p, 7).Value = Cells(x, 1).Value       Cells(p, 8).Value = Cells(x, y).Value       p = p + 1       y = y + 1     Loop     x = x + 1     y = 1   Loop   MsgBox ("Complete!") End Sub -------------------------------- ・マクロの解説 x、yはA型の表の先頭を表す。 pは、B型の表の先頭を表し、7(G列)に営業所名、8列はメンバーの名前を入れる。 最初のWhileは、A型表の営業所名がなくなる(ブランクになる)まで繰り返す。 次のWhileは、ある営業所のメンバーの名前がなくなるまで繰り返す。なくなったら、A行の次の営業所へ進む。 メンバーの名前がある場合は、営業所名をセル(p、7)に、メンバーの名前をセル(p、8)にコピーして、B行の行数を一つ進める。 全部終わったら、”Complete"と表示する。 ※表示上スペースは全角スペースを使っていますが、実際に使うときは半角スペースを使ってください。 ◆改造する場合 最初のx、yのセルの番号を変えれば、A型の表の位置を変えることが出来ます。 B型の表の位置は、pと、7、8(固定)を使っていますが、これを好きな場所(別のシートなどでも可)に変更してください。 最初、簡単なテストファイルを作って、デバッグしてから、本番のデータでやってみてください。 ご参考に。

roroin
質問者

お礼

マクロの経験はありませんが、時間をとってチャレンジしてみます。 感謝いたします。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 今仮に、A型の表がSheet1のB2~F4のセル範囲に存在していて、Sheet2のB~C列の2行目以下にB型の表を表示させるものとします。  又、A型の表には、途中に空欄が挟まっている箇所が無く、且つ、B列の部署名には重複が無いものとします。  まず、Sheet2のB2セルに次の関数を入力して下さい。 =IF($B1="","",INDEX(Sheet1!$B:$B,IF(ROWS($B$2:$B2)=1,ROW(Sheet1!$B$1)+1,MATCH($B1,Sheet1!$B:$B,0)+(COUNTIF($B$1:$B1,$B1)>=COUNTIF(INDEX(Sheet1!$C:$C,MATCH($B1,Sheet1!$B:$B,0)):INDEX(Sheet1!$F:$F,MATCH($B1,Sheet1!$B:$B,0)),"*?"))))&"")  次に、Sheet2のC2セルに次の関数を入力して下さい。 =IF($B2="","",VLOOKUP($B2,Sheet1!$B:$F,COUNTIF($B$2:$B2,$B2)+1,FALSE))  そして、Sheet2のB2~C2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  これで、A型の表のデータを基にして、B型の表が自動的に作成されますし、A型の表に変更があれば、その変更内容が自動的にB型の表に反映されます。(ですから、元となっているA型の表が削除されれば、B型の表の内容も空欄となります)  

roroin
質問者

お礼

詳細にご説明頂き、誠にありがとうございます。 今からチャレンジしてみます。

  • iw_steel
  • ベストアンサー率27% (50/183)
回答No.2

一例ですけど 名前の後ろにセルを挿入してそのセルに=CONCATENATEで 結合してその結合したセルだけをコピーする、さらに区切り位置を指定して セルを分解というマクロを組んだらどうでしょうか。

roroin
質問者

お礼

マクロ勉強しなくてはいけません。どうもありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

D列とE列に、B列の営業所の列をコピー挿入して、CD列とEF列のデータをAB列の下に切り貼りして、B列を基準に並べ替えてから、ブランク行を削除して、A列を基準に並べ替えてはいかがでしょう。

roroin
質問者

お礼

どうも、ありがとうございます。 今は、そのようなやり方をやっております。

関連するQ&A

  • エクセル2010 表の作成について

    エクセル初心者です。 作成したい表の作り方で、方法がありましたら教えていただきたく質問させて頂きました。 【基データ】は、 ・個人のID ・氏名 ・作業内容(A~F) ・上記作業の完了日 という一覧となっております。 とあるデータベースから抽出したもので、 抽出段階でこの配列を変更することはできません。 この【基データ】をもとに、 重複するIDと氏名をひとつにまとめて、 作業内容を列ごとに並べ、 該当するセルに完了日を表示させる という表を作成したいのですが、 なにか方法はありますでしょうか? 【基データ】には膨大な量のデータがあるので、 良い方法があると助かります。 簡単な図を添付します。 説明がわかりづらく申し訳ございませんが 宜しくお願い致します。

  • エクセルで期限管理表作成

    エクセルで期限管理表を作りたいのですが、いかんせん初心者なのでなかなか進みません。本を読みながらしていますが。。 私は、賞味期限の管理をしています。今まで、納品されたものはすべて日付ごとに分けたノートに、賞味期限を記入していました。商品ごとに割引するタイミングが違うために、漏れが出ています。 (例)商品a  製造日より1年が賞味期限なので14日前より30パーセントオフ   商品b 製造日より半年が賞味期限なので3か月前より30パーセントオフ    そこで、エクセルを使って管理した方が効率がいいかなと考えたんですが、、なかなか進みません。 作りたい表は、以下です。 製造日より、1年。2年。などにシートを分けて管理。←入力しやすいかなと。 設定した期日の前になると点滅。 賞味期限がちかくなると、赤色。 期日が切れると、違う色に。 フリーソフトでもいいので、教えて頂けないでしょうか?

  • excelで作成の管理票を一発ででマクロに変換

    EXCELで三か月分の販売管理票を作成し利用しています。行が約6000*列112、シートが10の膨大なデータになっており表が重くなり作業に支障が出てきております。マクロに変更したら軽くなると聞いたことがあります。一つ一つのセルを変更するのが大変なので一括でマクロに変更する方法があればご教示ください。とにかくフリーズしそうになりつつありますので困ってます。 ※OKWAVEより補足:テーマ「エクセル」から投稿された質問です。

  •  エクセルを使った作業分担表の作成の仕方

     エクセルを使った作業分担表の作成の仕方 画像添付にあるシフト表から下記の作業分担表を 作成するの効率のよいやり方をご存じの方いらっしゃらないでしょうか エクセルを使えばできると思うのですが、どうでしょうか    9  10  11  12  13 14  15 16 17 氏名 木崎 ←一一一一一一一→ 宮元 ←ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー→ 尾崎 ←---------------------------------------→ 大田 時間だけは元から入力されていますが、出退勤を示す矢印と氏名は毎日 変わるため、いつも手書きです。  それをシフト表から自動転記できるにしたいのです。

  • Excel VBAを使用した勤務表の作成

    現在、月毎にシート別になっている勤務表の管理をしており、初心者ながらExcel VBAを使って効率的に作成したいと思っています。 勤務表は1行目に日付、A列に従業員の名前が入っています。 その中でつまづいている箇所がありますので以下の2点について教えてください。 ① 従業員の中に三交代制の従業員がいます。  A、B、Cの3つの班に分かれており、その日がどの班なのか分かるように日付の下の行に「A B C A B C ・・・」と順番に記載したいですがどのようにしたら良いでしょうか?  また、この時に月を跨ぐとAから始まらない(前月がBで終わると翌月1日はCから始まる)と思うのですが、シートを跨いでABCの3つが続いていくようにしたいです。 ② 前記①が完了したら、三交代制の従業員の隣にそれぞれABCの表記をし、日付のABCと従業員のABCがそれぞれ交わる日のセルに「出勤」と入れたいです。 職場のパソコンで作業しているため、現在手元にデータがなく、参考となる画像がつけられずに分かりづらいとは思いますがご回答頂けると助かります。 よろしくお願いします。

  • 【エクセル2003】既に有る表から別形式に並び替え

    Excel2003を使用しています。 既にある表(添付画像内Book1)より別形式(添付画像Book2)へ並び替えするにはどういった方法がございますか? 今まではBook1を開いて、Book2へチクチクコピペしていましたが、作業効率やコピペミスが多いためマクロ等で一括変換できないかと思いました。 補足 ・Book1のデーターはNo1~200程あります。 ・基本的に金額や件数の合計などは必要ないので、全て文字列でOKです。 ・当方、ExcelのマクロやVBは初心者です。 以上、宜しくお願いいたします。

  • エクセルで顧客訪問管理表を作成しています。

    エクセルで顧客訪問管理表を作成しています。 6/1 佐藤氏 6/1 加藤氏 6/2 佐藤氏 6/2 真田氏 6/4 伊藤氏 というようなデータがあります。 この、日付け、顧客データをもとに、     6/1 6/2 6/3 6/4 伊藤           ◎ 山田 加藤  ◎ 佐藤  ◎ 真田     ◎ といった表に転記されるように顧客訪問管理表を作りたいのですが、 どのような関数を使えばいいでしょうか? ご教示のほどよろしくお願いします。

  • EXCELの表作成について

    EXCELについて質問です。 表Aと表Bから表Cのような結果を出すためには、 どうすれば良いでしょうか? 下記の例ではたいしたデータではありませんが、 膨大な数のデータがあるとして、関数などEXCELの機能を活用して簡単に 結果を出したいと思っています。 【表A】 A    B     C    D 1     A店 B店 C店 2 パソコン 3 掃除機 4 冷蔵庫 5 テレビ 【表B】 A店   B店   C店 パソコン パソコン パソコン 掃除機  冷蔵庫  掃除機 冷蔵庫  テレビ  テレビ 【表C】 A    B    C    D 1     A店 B店 C店 2 パソコン ○ ○  ○ 3 掃除機  ○    ○ 4 冷蔵庫  ○ ○ 5 テレビ     ○  ○ ※表A内で、表Bに該当する箇所に"○"が記入されます。 ※1~5はEXCELの行 ※A~DはEXCELの列 当方、EXCELは使い慣れていいますので、 多少難しい方法でも構いません。 (ややこしい関数の組み合わせも理論さえ理解すれば大丈夫です) どなたか分かる方がいましたら、 よろしくお願い致します。

  • Excelで表を作成する・・・

    お世話になります 今まで疑問に感じずに作業していましたが??????? 色々な構成の表を作る場合、とにかく細かな列、行を寄せ集めて コツコツ手直しを繰り返して思い通りの表などを作成していましたが この手法は一般的なのですか? とにかく面倒で一部は広く、一部は狭くと場面ごとに複雑なので 最初から膨大な列を幅を狭く集約して実行していますが そもそも、そのやり方が正しいのでしょうか??? ちなみに周りの仲間も同じ事をゴクゴク自然にやっている感じですが? Excelに詳しい方、また、別なやり方をしている方 なんでもアドバイスください!

  • エクセルで勤務表作成

    教えてください! すでに、罫線など印刷された勤務表に日付、曜日、コード番号などいくつかのデータを印刷したいのですが、エクセル2000でやってます。 ところが、微妙に罫線にかかったりしてキレイに印刷されないのですが、これはこまめに位置を合わせて試し印刷していくしかないのでしょうか? もっと、効率のいいやり方はありますでしょうか? よろしくお願いいたします。