- 締切済み
Excelの表作成について
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Siegrune
- ベストアンサー率35% (316/895)
## マクロが使えない前提で(使えるとすぐだけど。) (1)B2の名前の最初のところへカーソルをもっていく。 (2)ctrl +shift + →を押す。 B2から??2(最後の列)まで選択される (但し、途中にデータが入っていない列がない前提・・・あっても複数回繰り返せば対応可) (3)コピーする。 (4)B型表に移動して、今から入れたいC??にカーソルを持ってきて、形式を選択して貼り付けで行列を入れ替えのチェックOn。 縦に並んで貼り付けられる。 (5)A型表に戻り営業所名をコピーする。 (6)B型表に移動して、名前の列でctrl +↓を押すと一番したまでいくから、一列左に移動して、 ctrl +shift + ↑を押す。 営業所名を貼り付けたい範囲が選択される。 (7)貼り付けをする。 これをくりかえす。
- KEIS050162
- ベストアンサー率47% (890/1879)
マクロは使えますか? もし、マクロが使えるのであれば、割と簡単に出来ます。 以下は、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(固定)を使っていますが、これを好きな場所(別のシートなどでも可)に変更してください。 最初、簡単なテストファイルを作って、デバッグしてから、本番のデータでやってみてください。 ご参考に。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、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型の表の内容も空欄となります)
お礼
詳細にご説明頂き、誠にありがとうございます。 今からチャレンジしてみます。
- iw_steel
- ベストアンサー率27% (50/183)
一例ですけど 名前の後ろにセルを挿入してそのセルに=CONCATENATEで 結合してその結合したセルだけをコピーする、さらに区切り位置を指定して セルを分解というマクロを組んだらどうでしょうか。
お礼
マクロ勉強しなくてはいけません。どうもありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
D列とE列に、B列の営業所の列をコピー挿入して、CD列とEF列のデータをAB列の下に切り貼りして、B列を基準に並べ替えてから、ブランク行を削除して、A列を基準に並べ替えてはいかがでしょう。
お礼
どうも、ありがとうございます。 今は、そのようなやり方をやっております。
お礼
マクロの経験はありませんが、時間をとってチャレンジしてみます。 感謝いたします。