• ベストアンサー

仕分けされた表を簡単に作り替えたい

お早うございます。ここに、このように仕分けされた表があります。 表題: 青山 春雄 名: 春雄 姓: 青山 名字のフリガナ: アオヤマ 名前のフリガナ: ハルオ 役職: 課長 勤務先: 大阪(株) 勤務先のフリガナ: オオサカ(カブ) 勤務先電話: 1001 誕生日: なし 記念日: なし 表題: 阿蘇 姓: 阿蘇 名字のフリガナ: アソ 役職: 課長 勤務先: 東京(有限) 勤務先のフリガナ: トウキョウ(ユウゲン) 勤務先電話: 1002 誕生日: なし 記念日: なし 表題: 上 姓: 上 名字のフリガナ: ウエ 勤務先電話: 1030 誕生日: なし 記念日: なし 表題: 山田太郎 姓: 山田太郎 名字のフリガナ: ヤマダタロウ 役職: 係長 部署: 総務部 勤務先: 京都社 勤務先のフリガナ: キョウトシャ 勤務先電話: 2130 携帯電話: 060-*** 誕生日: なし 記念日: なし  ・  ・  ・ これを、下記のようにしたいのです。揃え方は、あいうえお順にA列に氏名(名前のみ、苗字と名前両方の人などばらばらに入ってます。もしし、そのような場合は氏名として揃えて) B列に勤務先電話番号(その項目の中に入ってるその人の勤務先電話番号これがその人の認識番号になるように作ってあるのでちょっと変ですが)となるように作り替えたいのです。 A     B 名前   勤務先電話番号 青山春雄   1001  阿蘇   1002   ・      ・  ・      ・ 上   1030 ・      ・ ・      ・ ・      ・ 山田太郎   2130  というふうにしたいのです。どのようにしたら、いいのでしょうか?教えて下さい。ひとつ、ひとつ手作業で切り取り、貼り付け。又は、コピー、貼り付け等を行っていくと5000件くらいあるのです。いい方法がありましたらお願いします。 そして、最終的には、下記のように仕上げたいのですが、もし、よろしければ、合わせて教えて下されば幸いです。 A B C D E F   名前 勤務先電話 部署 勤務先 携帯電話 自宅電話 青山春雄 1001 経理部 大阪(株) 阿蘇 1002 営業課 東京(有限) 上 1030 山田太郎 2130 総務部 京都社 060-*** 長くなりましたが、宜しくお願いします。

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

  • ベストアンサー
回答No.8

すみません。まだ間違っていました・・・。 C1=IF(ISNUMBER(B1),B1,TRIM(B1)) >データと言う文字が表示されました から察するに、B1あたりに"データ"と入力していますか? ・A1に"項目"、B1に"データ"と入力(何でもいいです) ・2行目以降に分けたデータが入っている ・「表題」、「勤務先電話」はすべてに含まれている という状態(条件)で、 A:B列の入力範囲を選択、データ→フィルタ→オートフィルタ A列を「表題」でフィルタリングする B列に抽出された名前をコピー、別シートに貼り付け 同様に「勤務先電話」で抽出、先ほどの名前の隣に貼り付け とします。 ちなみに、No.5の続きでも、順調に出来ればそんなに時間はかかりません。

abeji-
質問者

お礼

お早うございます。お忙しい処、回答有難うございます。再度、教えて 頂いた数式で、 >B列の勤務先電話のところが数字で表されています。B列の同じ行の横のセル、C列のセル(勤務先電話の所)にはデータと言う文字が表示されました。 の、「データと言う文字」が「数字」に替わりました。 >B1あたりに"データ"と入力していますか? はい、その通りです。「データ」と入力されてます。 >データ→フィルタ→オートフィルタ >A列を「表題」でフィルタリングする そうしたら▼印で括られた表題の名前をクリックするとB列にデータとしてその名前が表示されました。ただ、一字づつの表示になります。オートフィルタのことを勉強して一括でB列に表示されるようにしようと思います。何も分からない私のために解りやすくご説明、ご指導頂き本当に感謝致します。お陰さまで、エクセルの事が沢山勉強出来ました。本当にご親切な回答有難うございました。

その他の回答 (12)

noname#204879
noname#204879
回答No.13

[ANo.12この回答への補足]に対するコメント、 》 タブにチェックが入っていますが、・・・。チェックをはずすのですか? 貴方が示した「仕分けされた表」も私のもタブは一切使っていないので「そんなのカンケ~ネ~」です。 「ちなみに、どちらもやってみました」ならその結果も述べておくべきでしたね。 》 …で表示された項目名は、表題: 姓: 名字のフリガナ: 勤務先電話: 誕生日: … 此処が理解できません。 私が書いたステップ1を再読ください。「[ANo.3]に示したワークシート部分の…」と明記しています。そこには「表題:」「姓:」などのようにコロン(:)の文字(全角も半角も)一切使っていません。 「何も足さない、何も引かない」で私が示したステップで出直してください。 【お断り】それから先の「補足」は読んでいません。

abeji-
質問者

お礼

お早うございます。最後までお付き合いただき本当に有難うございました。最後にご指示いただい事を忠実に最初から「:」も外して作業しましたが、結果はまったく同じでした。ただ、ご教示いただいた事を、何回か繰り返しているうちにいろんな事が解って来ました。例えば、一行づつずれている分は、切り取って、その人の正しい番号に貼り付け直したり、その時に表示されている氏名の横のF列の「名字のフリガナ」を参考にしたら、正確な番号が貼り付けられる事などです。あとは、出来たことを土台にして、手作業で進めて参ります。本当にお世話になり有難うございました。

noname#204879
noname#204879
回答No.12

[ANo.11この回答への補足]に対するコメント、 (上手く行かないなら諦めるのかと思ったら、まだ「宜しくお願い致します」とのことなので、もう暫くお付き合いしましょうか…(^_^;)) 次の手順をお試しください。途中での質問にお答えください。お答えがYESのときのみ次のステップに進んでください。 1.[ANo.3]に示したワークシート部分の1行目(項目名、データ)~   39行目(記念日、なし)を選択して、Ctrl+C を実行 2.Excel を起動して新規ワークシート Book1.xls の Sheet1 のセル   A1 を選択 3.マウスの右クリックから[形式を選択して貼り付け]を実行 4.[貼り付ける形式]で“テキスト”を選択して[OK]をクリック 5.ステップ1の項目名とデータおよび全レコードがワークシートに取   り込まれましたか?Excel 左端枠上の行番号とA列左端の番号が一   致していますか? 6.A列全体を選択 7.[データ]→[区切り位置]を実行 8.“カンマやタブなどの…に区切られたデータ”に目玉入れ 9.[次へ]をクリック 10.“スペース”および“連続した区切り文字は1文字として扱う”に   チェック入れ 11.[次へ]をクリック 12.[データのプレビュー]窓内の左端列のデータが反転したことを確認   して“削除する”に目玉入れ 13.[データのプレビュー]窓内の2列目の上端枠(「G/標準」と表示)   をマウスでチョーン 14.Shiftキーを抑えたまま、3列目の上端枠(「G/標準」と表示)も   チョーン 15.“文字列”に目玉入れ 16.[完了]をクリック 17.セル B2 の「青山」を「青山 春雄」に書き替え   セル B27 の「押切」を「押切 もえ」に書き替え   セル B34 の「加藤」を「加藤 夏希」に書き替え 18.C列を削除 19.何も問題なかったでしょうか? この状態から、[ANo.9]に示した手順を実行してみてください。何か不都合があった時点で質問してください。それから先には進まないで。 【注意】貴方自身でデータを改変してはなりません。つまり、何も足さない、何も引かない、ですよ!

abeji-
質問者

補足

お忙しい中、度々済みません。ご指示の通り1から12までは順調に来ました。 >10.“スペース”および“連続した区切り文字は1文字として扱う” にチェック入れ この時、区切り文字の所のタブにチェックが入っていますが、そのままでかまわないんですよね。チェックをはずすのですか?ちなみに、どちらもやってみました。 >12.[データのプレビュー]窓内の左端列のデータが反転したことを確認して“削除する”に目玉入れ これは、右上の列のデータ形式ですよね。まず、「G/標準」の目玉にチェックが入ってます。そして、上記の12の操作をしました。そうすると、左端のデータのプレビューの所が削除になり反転して白抜き文字で表示された項目名は、表題: 姓: 名字のフリガナ: 勤務先電話: 誕生日: 記念日: 表題: 名: 姓: 名字のフリガナ:名前のフリガナ: 勤務先: 勤務先のフリガナ: 勤務先電話: 誕生日:記念日:と繰り返して表示されています。なので、 >13.[データのプレビュー]窓内の2列目の上端枠(「G/標準」と表示)をマウスでチョーン  上記から先に進めませんでした。ご教示の程宜しくお願いします。

noname#204879
noname#204879
回答No.11

[ANo.9この回答への補足]に対するコメント、 [ANo.3]で私が示した「仕分けされた表」を見てください。 先頭行はフィールド名(項目名、データ)を入力し、データは2行目から始めています。先頭のレコードは2行目にしておく必要があります。

abeji-
質問者

補足

お早うございます。何回も同じような質問で済みません。昨日より、試行錯誤を繰り返しております。再度ご教示の通り最初からやり直して、もう一度、元となるデータA列から表題、苗字のふりがな、勤務先電話としてコピー&ペーストを行い、教えて頂いた数式を入れて、今朝、ご指摘の「項目名」など1行目に入れて再計算させました。昨日の段階で表題の氏名と勤務先電話が一行づつ下にずれていたのが、2行目から10行目までは教えて頂いた通りの正確な表示がされました。以降はやはり一行づつ下にずれて表示されました。そこで、sheet1に戻ってよく表を見ていましたら、「A列の項目名とB列のデータ」とD1、E1、F1の「表題、名字のふりがな、勤務先電話」の下に振り分けられた数字(1、1、1。2、2、2。3、3、3と斜め下方に規則正しくD列、E列、F列に表示された)とA列の「項目名の表題、名字のふりがな等」を見比べておりました所、2行目から85行目までは規則正しく振り分けられた数字になっておりますが86行目の「表題の名前のセル内」に名前と後ろに括弧で括られたその人の旧姓が注釈として入力されています。表題:をそのままA列に、B列に氏名のみを振り分けました。そして、もう一度最初からやり直しました。やはり、同じように一行づつ下方にずれ、112行目から「#N/A」が表示されました。そこで、sheet1に戻ってもう一度表を見ましたら、86行目の右方、D列の下方のセル「表題:」のところには、何も表示されず、E列の下方のセル「名字のふりがな」の所から規則正しく振り分けられた数字が順番にずれてます。すべてを、正確な表示にするには、どうしたらいいのでしょうか?お忙しい所、誠に申し訳ございません。宜しくお願い致します。

  • jellya_a
  • ベストアンサー率35% (12/34)
回答No.10

NO2です。 私の説明が悪くてすみません… abeji-のさんの元の表がA行とB行に かかれているのを前提に書いてしまいました… つまり > A  B  C >1 0 表題 青山春雄 >2 10 名前 青山 >3 20 …  … ↑はabeji-が提示されている表で、 ↓は新たに隣に追加してもらう表と考えてください。 >次に 直したい表を作ります。 >  E  F  G >1表題 名前 … >2 >3 式は、E2に入力していただきオートフィルを行って もらうことを勝手に考えていました… 説明が足りませんでしたね。 最後にEから始まる表をコピーして 形式を選択して貼り付けで値貼り付けを行って、 AB列を削除と言う感じですかね。 名前の順に並べるのは、エクセルの機能でフリガナで 並び替えれば問題ないと思います~~

abeji-
質問者

お礼

再度の回答有難うございました。今、教えて頂いた表をコピーして形式を選択して貼り付けで値貼り付けを行ってみました。入力されている数が多くて手作業なのでかなり大変です。どうも、ありがとうございました。

noname#204879
noname#204879
回答No.9

[ANo.3この回答への補足]に対するコメント、 [ANo.3]に示した表が Sheet1 にあるものとして回答します。 1.セル A2、A5、A8 をそれぞれ セル D1、E1、F1 にコピー&ペース   ト 2.セル D2 に式 =IF($A2=D$1,COUNTIF($A$2:$A2,D$1),"") を入力し   て、此れを右2列にドラッグ&ペースト 3.範囲 D2:F2 を下方にズズーッとドラッグ&ペースト   → 下表がその結果 Sheet1    D      E      F 1  表題 名字のフリガナ 勤務先電話 2   1 3 4 5           1 6 7 8                 1 9 10   2 11           2 12 13                 2 14 15   3 16 17           3 18                 3 19 20   4 21           4 22 23 24                 4 25 26 27   5 28           5 29 30                 5 31 32 33 34   6 35           6 36 37                6 38 39 40 41   7 4.Sheet2 において、セル A2 に次式を入力して、此れを右2列にド   ラッグ&ペースト   =INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!D:D,0)) 5.Sheet2 の範囲 A2:C2 を下方にズズーッとドラッグ&ペースト   → 下表がその結果 Sheet2     A      B    C 1 名前    名字のフリガナ 勤務先電話番号 2 青山 春雄 アオヤマ    1001 3 阿蘇    アソ      1002 4 上     ウエ      1030 5 山田太郎  ヤマダタロウ  2130 6 押切 もえ オリキリ    1234 7 加藤 夏希 カトウ     5678 8 ・・・   ・・・     ・・・ 6.Sheet2 全体を選択して、[コピー]→[値の貼り付け] 7.列Bを昇順に[並べ替え]   → 下表がその結果     A      B    C 1 名前    名字のフリガナ 勤務先電話番号 2 青山 春雄 アオヤマ    1001 3 阿蘇    アソ      1002 4 上     ウエ      1030 5 押切 もえ オリキリ    1234 6 加藤 夏希 カトウ     5678 7 山田太郎  ヤマダタロウ  2130 8 ・・・   ・・・     ・・・ 8.B列を削除(すると貴方の希望通りだが、折角の情報は残して、B   列を非表示にした方がモア・ベターかも)

abeji-
質問者

補足

重ねての回答有難うございます。エクセルってすごい事が出来るのですね。そこで、教えていただいた手順を参考に元データで作業をしてみました。まず、A列の「表題: 名字のフリガナ: 勤務先電話:」をそれぞれD1、E1、F1に教えていただいた通りにコピー&ペーストしました。ところが、ご教示いただいた表では、表題:の下のセルD2に「1」が入力されているのに「1」が表示されません。また、名字のフリガナ:の下セルE5に「1」が入力されているのにE3に「1」が入力され、勤務先電話:の下のセルF8に「1」が入力されているのに、F7に「1」が入力されました。また、 >Sheet2 において、セル A2 に次式を入力して、此れを右2列にドラッグ&ペースト を行いました処、2行目より10行目までは、A列の「苗字または、氏名」とB列の読みが1行づつ下にずれて表示されました。また、C列の勤務先電話もやはり、A列の苗字の人の番号と表示された番号が1行分、下のセルにずれて表示されました。下記のようになりました。  A      B 名前   勤務先電話番号 青山春雄     ← もともとこの人の番号が1001ですが表示されませんでした。 阿蘇   1001← 1001が表示されていますがもともとこの人の番号は1002です。   ・   ・ 上    1029 ← 1029が表示されていますがもともとこの人の番号は1030です。 山田太郎 2129 ← 2129が表示されていますがもともとこの人の番号は2130です。   ・   ・   ・ 上記のようになりました。また、11行目以降は「#N/A」が表示されました。下記のように元になるA列に入っているデータ項目数が個人によっては9項目あったり6項目だったりと違ってます。それが、原因でしょうか? 表題: 姓: 名字のフリガナ: 役職: 勤務先: 勤務先のフリガナ: 勤務先電話: 誕生日: 記念日: 表題: 姓: 名字のフリガナ: 勤務先: 勤務先のフリガナ: 勤務先電話: 誕生日: 記念日: 表題: 姓: 名字のフリガナ: 勤務先電話: 誕生日: 記念日: 表題: 姓: 名字のフリガナ: 勤務先: 勤務先のフリガナ: 勤務先電話: 自宅電話: 誕生日: 記念日: 勉強不足で申し訳ありませんが、再度、教えて下さい。宜しくお願いします。

回答No.7

No.5です。補足拝見いたしました。 >青山春雄と入力されているセルが青山と春雄に 区切り位置の指定で、「スペース」のチェックが入っていましたら外してください。あるいは、No.6のように再結合してください。 ちなみに、":"で分けることはできましたでしょうか? >C1セル すみません。数式に誤りがありました。 C1=IF(ISNUMBER(B1),C1,TRIM(B1)) とりあえず、No.3さんの提示した形式に直してからでないと、先に進めません。

abeji-
質問者

お礼

お早うございます。cafe.au.laitさん。すごい事になりました。ここで、伝わりますか?本日、たった今、改めて教えて頂いたことを順番に勉強し直して >C1=IF(ISNUMBER(B1),B1,TRIM(B1))を入力したら、C1にデータと表示されその続きの項目を順番に作業していったら、やろうと思っていた事が一発で出来ました。本当に有難うございました。どうか、この気持ちが伝わりますように!

abeji-
質問者

補足

cafe.au.laitさん。さっそくのご親切な回答有難うございます。 >":"で分けることはできましたでしょうか? はい、お陰さまで、それは出来ました。それと、訂正して頂いた関数により、C1=IF(ISNUMBER(B1),C1,TRIM(B1))の数式で無事C列にB列と同じ形でデータが入りました。そして、B列の勤務先電話のところが数字で表されています。B列の同じ行の横のセル、C列のセル(勤務先電話の所)にはデータと言う文字が表示されました。あとは、どうやったら、氏名(A列)と数字(B列)に分けられるのでしょうか?お忙しい所たびたび質問攻めで申し訳ありません。宜しくお願いします。出来ましたら、これが最後と致します。本当にお世話をお掛けして済みません。

回答No.6

No.5です。No.3さんへの補足を拝見いたしました。 D1=A1&B1&C1 下にコピー D列をコピー、A列に値貼り付け B:D列を消去 No.5の1) の手順でA、B列に分けられると思います。

abeji-
質問者

補足

cafe.au.laitさん。ご親切な回答有難うございます。 項目名A列とデータB列に分かれて入ってます。D1におしえていただいた数式「=A1&B1&C1」をD1に入力しました。そしたら、A列に項目名データB列にデータと分かれました。 >B:D列を消去No.5の1) の手順でA、B列に分けられると思います。とありましたが希望する氏名(A列)と数字(B列)に分けられなかったので、その後の操作は ANo.5に書いてある、2)内容の先頭にあるスペースを除去の手順に戻るのかなと思ってC1セルに=IF(ISNUMBER(C1),C1,TRIM(C1))を貼り付けてEnterキーを押しましたが、やはり「0」が表示されます。 どうやったら、氏名(A列)と数字(B列)に分けられるのでしょうか? 宜しくお願いします。

回答No.5

やや手間ですが、VBAを使わずにやってみようと思います。 まず、元のデータはA1から下に続いているものとします。 一覧表はE1を基準にして作成します。 1)項目名と内容を分離(すでに分離されている場合は飛ばしてください) データ→区切り位置から、「カンマやタブなどの・・・」を選択して次へ、「区切り文字」の「その他」に":"を入力、完了します。B列に内容が分離されます。 2)内容の先頭にあるスペースを除去 C1=IF(ISNUMBER(C1),C1,TRIM(C1)) 下にコピーします。C列を選択してコピー→B列を選択し、形式を選択して貼り付け→値→OK C列を消去します。 3)項目一覧を作成 A列を選択し、データ→フィルタ→フィルタオプションの設定で、「リスト範囲」でA1から最終行までを選択(自動的に選択されているかも)、「抽出先」から「指定した範囲」を選択、「抽出範囲」でD1を選択、「重複するレコードは無視する」にチェックを入れてOK 抽出された項目一覧から空白セルなど不要なものを削除して範囲選択→コピー→E1を選択→「形式を選択して貼り付け」→「行列を入れ替える」にチェック→OK E1に「表題」が、その他の項目が右にコピーされたと思います。D列は消去します。 4)関数を入力 ・表題の行番号 D2=MATCH("表題",OFFSET($A$1,$D1,,20),FALSE)+$D1 "20"のところは3)で抽出した項目の数より大きければよいです。 最初にエラーとなったセルに、"元データの最終行番号+1"を打ち込んでください(今回のデータでは"30"の下のセルがエラーとなるので、"41"と入力します)。 ・表題 E2=INDEX($B:$B,$D2) ・内容 F2=INDEX($B:$B,$D2+MATCH(F$1,OFFSET($A$1,$D2,,$D3-$D2),FALSE)) 右にコピーします。 すべての数式をまとめて下にコピーすれば、一覧表がとりあえず完成します。 5)値貼り付けとエラー消去 一覧表全体を選択→コピー→形式を選択して貼り付け→値→OK そのままCTRL+G→セル選択→「定数」を選択して、エラー値以外のチェックを外してOK→Delete D列その他不要なセルを消去 長くなりましたが、以上の手順でできると思います。 なお、ここまででNo.4さんのVBA処理後とほぼ同じ状態です。

abeji-
質問者

補足

回答有難うございます。 >データ→区切り位置から、「カンマやタブなどの・・・」を選択して次へ、「区切り文字」の「その他」に":"を入力、完了します。B列に内容が分離されます。 上記を行いましたら、青山春雄と入力されているセルが青山と春雄に振り分けられました。また、C1セルに=IF(ISNUMBER(C1),C1,TRIM(C1))を貼り付けてEnterキーを押したら計算出来ません。と、なり「0」が表示されました。ですので、ご教示頂いたそれから先の作業が出来ません。そこで、お願いがあるのですが、下記のようにA列に氏名または、苗字と1001などの数字が入ったセルがあります。この中の氏名または、苗字をB列に。C列にその人の持っている数字を隣り合わせとなるように持っていきたいのです。どうしたら、いいのでしょうか?教えて下さい。 A列          B列    C列 青山春雄      青山春雄  1001 青山春雄      阿蘇     1002 アオヤマハルオ   山田太郎  2130 大阪(株) オオサカ(カブ) 1001 なし なし 阿蘇 阿蘇 アソ 東京(有限) トウキョウ(ユウゲン) 1002 山田太郎 山田太郎 ヤマダタロウ 京都社 キョウトシャ 2130  ・  ・  ・ 以下続きます。と言うふうにしたいのです。宜しくお願いします。

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.4

何で表が作られているのか書いていないのですが、Excelと仮定しておきます。 現状は、 "表題"として括られたデータが5000件くらいある。 "表題"の中には10項目位の詳細データが入っている。 "表題"の中の項目名は共通だけど、項目数は"表題"によって差がある。 データは特定の列にすべて(縦方向で)入力されている これを、"表題"ごとに詳細データを横方向に並べ替える。 その際に、姓+名等一部のデータを編集したい。 最終的には、名前、勤務先電話、部署、勤務先、 携帯電話、自宅電話、の様に並べたい・ っと言う事でよろしいのでしょうか?   きっと方法はいくつもあって、中には素晴らしい方法を提示してくださる人もいると思いますが、とりあえず自分ならこうするだろう・・・と言うのを書いてみます。 まず、沢山あるデータを立て並びから横並びへ変更する・・・これを繰り返す訳ですからこれは、それ用のマクロを組んで処理します。 マクロを組むより手作業の方が早いところは手作業でします。 現在データがSheet1のA列に"表題: 青山 春雄"(A1セル)から縦に一列で入っているとします。(必須) Sheet2に並べ替えたときの表題項目を準備します・・・これは"現在の表の項目名を流用"して、表題、名、姓、名字のフリガナ、役職、部、総務、勤務先、、、、っとSheet2のA1~M1?(←データの最大項目数に合わせる)に入力しておきます。(必須) 現在質問文にあるだけで、 表題 名 姓 名字のフリガナ 名前のフリガナ 役職 部署 勤務先 勤務先のフリガナ 勤務先電話 携帯電話 誕生日 記念日 の13項目ありますが、さらに別の項目があればN1~に入力しておく(必須)。 (どの道最後に並べ替えれば済むことですが、最終希望の 名前 勤務先電話 部署 勤務先 携帯電話 自宅電話 に近い形で並べておくと後で楽かも?) 同様のものをSheet3にも用意しておきます。(これはそれほど重要ではないかも) さてここから各データを並び替えさせます。 マクロの記述は ・・・・・↓ここから↓・・・・・ Sub Macro1() ' ' Macro1 Macro ' Do Until Range("Sheet1!A1") = 0 Sheets("Sheet1").Select Range("A65536").End(xlUp).Select      ’←※1 koumoku = Left(ActiveCell, (WorksheetFunction.Find(":", ActiveCell)) - 1) Selection.Cut Sheets("Sheet2").Select Range("A1").Select If ActiveCell <> koumoku Then Do Until ActiveCell = koumoku ActiveCell.Offset(0, 1).Range("A1").Select Loop End If ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste If koumoku = "表題" Then Range("A2:M2").Select Selection.Cut Sheets("Sheet3").Select Range("A65536").End(xlUp).Select      ’←※1 ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste End If Loop Range("A2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet2").Select Range("A2").Select ActiveSheet.Paste Range("A2").Select ActiveCell.FormulaR1C1 = _ "=IF(Sheet3!RC="""","""",MID(Sheet3!RC,(FIND("":"",Sheet3!RC)+2),20))" Range("A2").Select Selection.Copy Range("A2:M2").Select      ’←※2 ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select End Sub ・・・・・↑ここまで↑・・・・・ 上記の内容で、Sheet1のA列に入っているデータを、横並びに変えてSheet2に書き出します。(作業の都合でSheet3も使います) ’←※1の列の Range("A65536") は最下端のセル位置(Excel2007では変わるけど、このままでも問題はない) ’←※2の列の Range("A2:M2").Select は、項目数が増えればそれあわせて変更する(たとえば Range("A2:N2").Select など) ただしこのマクロだと、データが上下逆さま(青山 春雄が一番下になる)ので、作業列に連番を打って降順でソートする必要があります。 苗字と名前のフリガナを一つにまとめるのは手作業で、適当な作業列の*2セルに"=名字のフリガナのセル&名前のフリガナのセル"(たとえば =D2&E2 など)という式を入力して、下方へコピーすることで可能でしょう。 あとはその結果のコピーを取って、名前の列に値で張り付ければいいでしょう。 項目ごとの列間の移動も手作業で行います。 とりあえず、一番手間のかかる縦データの横並べ化だけマクロで処理すれば、あとはそれほど手間ではないと思います。 とりあえず作業できるだけのレベルで組んであるので、おかしい記述部分もあるけど、無視してください。

abeji-
質問者

お礼

回答有難うございました。今、ご教示頂いたマクロを理解しようと書いてある事を読んでおります。それから、テキストを読みながらひとつづつやって行こうと思います。有難うございました。

abeji-
質問者

補足

ご丁寧な回答有難うございます。まったく、ご指摘の通りです。 >姓+名等一部のデータを編集したい。 そうです。それを、氏名としてA1に。 >最終的には、名前、勤務先電話、部署、勤務先、 携帯電話、自宅電話、の様に並べたい 最終結果は、そうなんですが、急務としては、B2に勤務先電話として入力されている番号を入れる。このA1、B2に入力(移し替える)の二点なんです。実は、恥ずかしながら、マクロがよく理解出来てません。テキストなどでは、読んではいるのですが、上記の二点だけでも早急に行いたいのですが、重ねてのご指導をお願いします。

noname#204879
noname#204879
回答No.3

[ANo.1この回答への補足]に対するコメント、 要は「最終的には」「名前」を五十音順に並べ替える必要がありそうですね? お示しの「仕分けされた表」のデータは全て(例えば)A列に入力されているように見えますが、そうだとすれば処理が厄介になります。 そこで、「仕分けされた表」を次に示すように2列に分けることが貴方自身で可能ですか?YESなら考えてみますが、それも出来ないのなら、私は撤退(?)します。      A       B 1  項目名     データ 2  表題      青山 春雄 3  名       春雄 4  姓       青山 5  名字のフリガナ アオヤマ 6  役職      課長 7  勤務先     大阪(株) 8  勤務先電話   1001 9 10 表題      阿蘇 11 名字のフリガナ アソ 12 勤務先     東京(有限) 13 勤務先電話   1002 14 15 表題      上 16 姓       上 17 名字のフリガナ ウエ 18 勤務先電話   1030 19 20 表題      山田太郎 21 名字のフリガナ ヤマダタロウ 22 部署      総務部 23 勤務先     京都社 24 勤務先電話   2130 25 携帯電話    060-*** 26 27 表題      押切 もえ 28 名字のフリガナ オリキリ 29 勤務先     千葉支店 30 勤務先電話   1234 31 誕生日     12月29日 32 記念日     9月22日 33 34 表題      加藤 夏希 35 名字のフリガナ カトウ 36 勤務先     秋田支店 37 勤務先電話   5678 38 誕生日     7月26日 39 記念日     なし 40 41 ・・・・・   ・・・・・

abeji-
質問者

補足

重ねての回答有難うございます。 今、ご指示頂いた通りに、「仕分けされた表」をA列、B列の2列に分ける作業をしております。(なにぶん、手作業ですのでまだ、途中ですが)それで、最初に書かれていた「仕分けされた表」のことなのですが、A列、B列、C列のように分かれてました。下記のようになっておりました。エクセルに入っている元のデータは、 A列、       B列        C列 表題:       青山 春雄 姓:        青山 名字のフリガナ:アオヤマ 役職:       課長 勤務先:       大阪(株) 勤務先のフリガナ: オオサカ(カブ) 勤務先電話: 1001 携帯電話: 誕生日: 記念日: 表題:       阿蘇 姓:       阿蘇 名字のフリガナ: アソ 勤務先: 東京(有限) 勤務先のフリガナ: トウキョウ(ユウゲン) 番地       (勤務先):      中央区 市町村    (勤務先):      東京都 勤務先電話: 1002 誕生日: なし 記念日: なし  ・  ・ 以下続きます。その表を、下記のように、 A      B 名前   勤務先電話番号 青山春雄 1001  阿蘇   1002  上    1030 山田太郎 2130 A列に名前もしくは氏名、B列に勤務先電話番号としての番号。このふたつの作業を最優先で行いたいのです。重ねてのご教示、宜しくお願いします。

関連するQ&A