• ベストアンサー

EXCELで表を別のフォーマットに移したいのです

うまく説明できるか自信がないのですが教えてください。 【Sheet1】 No. 住所 氏名 電話 fax 1  A   D   G   J 2  B   E   H   K 3  C   F   I   L と項目があり、既に入力されているA~Lまでのデータを、【Sheet2】の No.1 住所 A     電話 G 氏名 D     fax J というフォーマットのシートに連動させたいのです。Sheet1で呼び出したいNo.をSheet2のNo.の欄に入力すると、全部の項目が埋まっていくような感じで。(こんな説明でわかりますか?) これは例なのですが、No.の数も項目数もかなりあります。 何かいい方法はないでしょうか?  宜しくお願いします。

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

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

例データ A1:E4 No. 住所 氏名 電話 fax 1 A D G J 2 B E H K 3 C F I L G2に =INDEX($B$2:$E$4,INT((ROW())/2),MOD((ROW()),2)+1) G3からG7まで式を複写。 H2に =INDEX($B$2:$E$4,INT((ROW())/2),MOD((ROW()),2)+3) と入れてH7まで式を複写。 結果 G2:H7 A G D J B H E K C I F L 式が簡単になるように同一シートでやりましたが、Sheet2に実現するのも、式を少し変え =INDEX(Sheet1!$B$2:$E$4,INT((ROW())/2),MOD((ROW()),2)+1) などで出きりと思う。 ーー VBAなどでやるほうが、素直にプログラムにできる。

10180120
質問者

お礼

ありがとうございます。 依頼人は、この表が後々修正など必要になったとき、式が長いと(?)修正するのが大変だからなるべく簡潔なものをということでVLOOKUPでさえ嫌ったので、この式は更にダメだと思われます。 できればマクロなどでやってほしかったらしいのですが、私がまだまだ勉強不足でして・・・ どうもありがとうございました。

その他の回答 (3)

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

#2です。 お礼を書いていただきありがとうございます。 >依頼人は、この表が後々修正など必要になったとき、式が長いと(?)修正するのが大変だからなるべく簡潔なものをということでVLOOKUPでさえ嫌ったので、この式は更にダメだと思われます。 回答者は(少なくとも私は)できるだけ「色々な回答」を、時間をかけてテストして、回答してます。それは当方の勝手なんですが、 >式が長いと(?)修正するのが大変だからなるべく・・ は質問者側の事情なので、、回答者をがっかりさせることは、書かないほうが感じがよいと思います。後の処理(採用不採用を含め)は質問者にお任せなんですから。良いか悪いかはありますが、質問者には理解は難しいと想像するような回答も載せてますので。 質問者自身だけでなく、回答は読めるし、(自己勉強・満足もありますが)勉強してる方もいてほしいと思って回答してます。

10180120
質問者

お礼

お礼が遅くなり申し訳ございません。 全くおっしゃるとおりですね。 個人の問題ではなく、他の方の参考にもなることですし、本当にそのとおりだなと今回はいろんな勉強になりました。 ご助言感謝いたします。 ありがとうございました。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.3

参考となるページを紹介します。 >http://officetanaka.net/excel/function/tips/tips30.htm あまりに簡単に実現できるので、 目からウロコだと思いますが・・・

10180120
質問者

お礼

ありがとうございます。 私にはあまり簡単ではなく、自分の馬鹿さ加減にトホホです… 今後の勉強の資料として保管しておきます。 ありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

VLOOKUP関数でできると思います Sheet2のA1に呼び出すNo.の「1」を入力し、Sheet2の A2セル(住所)に =VLOOKUP($A$1,Sheet1!$A$1:$E$1000,2,0) B2セル(電話)に =VLOOKUP($A$1,Sheet1!$A$1:$E$1000,3,0) A3セル(氏名)に =VLOOKUP($A$1,Sheet1!$A$1:$E$1000,4,0) B3セル(FAX) に =VLOOKUP($A$1,Sheet1!$A$1:$E$1000,5,0)

10180120
質問者

お礼

早速の回答に感謝します。 やはりVLOOKUP関数が一番いいのでしょうか? 頼まれた仕事なのですが、どうもそれ以外のやり方がいいらしいのです。(でもそのやり方はわからないらしく・・・) 他にやり方が見つからなかったらVLOOKUPでやっちゃいます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう