- ベストアンサー
列の値を行に揃えたいのですが
すみませんが教えてください。関数、マクロ、ピポットテーブル等本を読みましたが適したものが見つけられませんでした。うまく記入できなかったのですがデータ数が膨大な為なんとか最良の方法を教えていただきたいのですがよろしくお願いいたします。 A1から順に親I、B2に子(1),子(2)、子(3)とD列まで入力してあり、A2には 1234,1235,1236,1237とD列までそれぞれ電話番号の下4桁が入力されております。 A3には、また同じように親II、B2に子(1),子(2)、子(3)とD列まで入力、A4に電話番号が入力されてあり、このような組み合わせが延々と続きます。 これをA行に親Iの電話番号を頭に1234~1237、B行に親I~子(3)、C行に親Iの1234の電話番号を、子(1)~子(3)までそれぞれ割り振り。 そして、A5から親IIを同じように記入しなおしたいのです。 横に関連づけのあるデーターを縦に挿入し直し、なおかつ次の親から始まるデーターを記入することは可能でしょうか。
- mirokumaru
- お礼率66% (4/6)
- オフィス系ソフト
- 回答数4
- ありがとう数5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。構造が良く分からないので、汎用性をこころがけて、コードを書いてみました。XL2000のコードです。ご参考まで。 'm行×n行 → n行×m行に変換 '$F$1:$H$4 → $F$7:$I$9 に、秘密の行列変換の操作を記述(式で行う) '1ブロック分を$F$1:$H$4にコピーし、変換された結果の$F$7:$I$9を出力先にペースト '縦に並んだブロックを、別シートに横に並べる 'シートが2,3になっているのは、1を他で使っていたからで、他意はなし。 Sub test() Dim sourceTopLeftCell As Range '元データの左上セル Dim destTopLeftCell As Range '複写先の左上セル Dim pasteTopLeftCell As Range '変換のため複写する先の左上セル Dim copyTopLeftCell As Range '変換後のデータの左上セル '4行×3列 → 3行×4列の例です Const m As Long = 4 Const n As Long = 3 Set sourceTopLeftCell = Sheets(2).Range("a1") Set destTopLeftCell = Sheets(3).Range("a1") Set pasteTopLeftCell = Sheets(2).Range("f1") Set copyTopLeftCell = Sheets(2).Range("f7") Application.ScreenUpdating = False Do Until sourceTopLeftCell.Value = "" sourceTopLeftCell.Resize(m, n).Copy pasteTopLeftCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False copyTopLeftCell.Resize(n, m).Copy destTopLeftCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Set sourceTopLeftCell = sourceTopLeftCell.Offset(m, 0) Set destTopLeftCell = destTopLeftCell.Offset(0, m) Loop Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17068)
規則性があるので、VBAでやれるでしょう。VBAは経験ありますか。 質問は実例を挙げて説明すべし。読者の負担を軽減せよ。 親+子は4人に決まっているのか?不自然だね。人数が変動すると関数では難しくなる。 色々な条件が質問に書いてないのでは? ーー 例の見本 A列 B列 C列 D列 岡村 茂 邦夫 ハナコ 1234 2345 3123 3423 木村 実 京子 真美 1122 2233 3344 4456 ・・・・・ ↓ A列 B列 C列 D列 1234 岡村 1122 木村 2345 茂 2233 実 3123 邦夫 3344 京子 3423 真美 4456 真美 延々と、と言うが2007ですか。256列の制限大丈夫か。 オーバーしないか。
- mitarashi
- ベストアンサー率59% (574/965)
表の構造が理解できません。面白い質問があったら、解決しようと手ぐすね引いている回答者の皆さんも、返事のしようがないのでは? >A2には 1234,1235,1236,1237とD列までそれぞれ B2~D2に入っていた、子(1),子(2)、子(3)はどうなるの? >A行に親Iの電話番号を頭に... A行って何? エクセルの話では無いのでしょうか? OKWaveで、表の体裁を表現するのはやっかいですが、それをしないと、話が始まらないと思います。
- keirika
- ベストアンサー率42% (279/658)
表の行列を入れ替える方法です。 一度に全ては無理でしょうが、一つずつコピー貼り付けを行うよりはらくだと思います。 http://www.microsoft.com/japan/users/tips/excel/147.mspx
お礼
早速のご回答ありがとうございます。 データー数が600と多いので、参考にさせていただいて引き続き頑張ってみます。
関連するQ&A
- A列の数値データの桁数に応じて、B列に異なる値を記入する方法
初心者です。エクセル2000 で入力します。すみませんが、教えてください。 A列のデータが4桁ならB列に 01 を記入、A列のデータが6桁なら 60 を記入、A列のデータが7桁なら 06 を記入したいのです。 A列 B列 1行 4001 →→ 01 2行 270006 →→ 60 3行 6300021 →→ 06 4行 4101 →→ 01 5行 271001 →→ 60 6行 6200032 →→ 06
- ベストアンサー
- オフィス系ソフト
- 行と列を入れ換える
行と列を入れ換える 方法教えて下さい! もらったデータが列に名前・住所・電話…と見出しがはいってて、とっても使いづらいんです\(--;) (A1名前・A2住所・A3電話ってタイトル入ってるんです。普通、1行目に横にB1名前・C1住所・D1電話とか書かれてると思うのですが…) 1つ1つコピペは面倒なくらい量があるので、何とか一括で並べかえる方法ないでしょうか(・・;)?!
- ベストアンサー
- その他MS Office製品
- 関数について教えて下さい。A列の1行目に1、3行目に5、6行目に8、1
関数について教えて下さい。A列の1行目に1、3行目に5、6行目に8、10行目に11と規則的でない行に規則的でない番号が入力されているデータがあり、このA列の番号を、シート2のA列の2行目から下に順番に表示したいのですが、そのような関数などあるでしょうか?。どなたかよろしくお願いします。 A列1行目 1 2行目 3行目 5 4行目 6行目 8 ・ ・ ・ 別シートA列 2行目 1 3行目 5 4行目 8 ・ ・ ・
- ベストアンサー
- オフィス系ソフト
- エクセル 合計条件が行と列の時の計算式
エクセルで、データがはいっている”データシート”と 合計を表示させたい”合計シート”があり、 合計シートに同じ番号の品名でおなじ日付のものを合計して 表示させたいと思っています。 データシートには、以下のように品名が同じものが複数はいっています A列 B列 C列 D列・・・・Z列これからさらにデータが増えていきます 1行目品名 4/1 4/4 4/5 2行目Z100 10 20 30 3行目Z300 40 50 60 4行目Z100 11 22 33 5行目Z200 70 80 90 ・ ・ 200行くらいデータがありこれからさらにデータが増えていきます。 合計シートもデータシートと同じような形で データシートのA列の 同じ番号&同じ日付 の数字をそれぞれセルB2からZ200まで合計した 数字を表示させたいです。 A列 B列 C列 D列・・・・Z列 1行目 4/1 4/4 4/5 2行目Z100 21 42 63 3行目Z300 40 50 60 4行目Z200 70 80 90 ・ ・ 200行目 合計シートのB2セルに入力したのですが、#VALUEエラーがでてしまい ました。 =SUMPRODUCT((データシート'!$A$2:$A$500=合計シート!$A2)*(データシート'!$B$1:$Z$1,合計シート!$B1)) SUMIFでも試してみたのですが、エラーがでてしましました。 説明が分かりにくく申し訳ないですが、どなたか分かる方いらしたら 教えてください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで長い行を5行ごとに1列にするには?
エクセルで行列の入れ替えの応用(になるのでしょうか?)をお尋ねします。 A列に例えば100行のデータが入っているのを、5行ずつ横並べにして、20行にしたい時どうすればよいでしょうか? A列 ------- データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) -------- こうなっているのを、 A列 B列 C列 D列 E列 ------------------------------------------ データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) ---------------------------------------- このように、表示したいのです。 お尋ねしているのは、100行ですが、 実は1500行ほどの長い名簿データが元のものです。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル100行1列を2行50列にする方法
エクセルで行列の入れ替えの応をお尋ねします。 A列に例えば100行1列のデータが入っているのを、2行ずつ横並べにして、50列にしたい時どうすればよいでしょうか? A列 ------- データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) -------- こうなっているのを、 A列 B列 C列 D列 E列 ------------------------------------------ データ1 データ3 データ5 データ7 データ9 データ2 データ4 データ6 データ8 データ10 (続く…) ---------------------------------------- このように、表示したいのです。 宜しくお願い致します。
- 締切済み
- その他MS Office製品
- エクセルの行と列の項目を入れ替えたいのですが
大きな表を作成しているのですが、行(1、2、3・・)と列(A,B,C,D・・・)を入れかえる必要がでてきました。すなわち、行を現在の列である(A,B,C,D・・・)とし、列を現在の行である(1、2、3、・・・)にしたいのです。こつこつデータを打ち直すしか方法はないのでしょうか?どなたか教えてください。お願い致します。
- 締切済み
- オフィス系ソフト
- 列と行で一致したセルに
HY-123 1/3 15個 AB-456 1/1 50個 といようなデータを入力したら 自動で下の表(A列の製造番号、1行目の日にちは固定の表)に 個数が入るにはどうすればいいですか? 番号と日付が一致すれば、その交差セルに個数が出るようにしたいのです。 宜しくお願いいたします。 1月 A B C D 1 1 2 3 2 HY-123 15 3 AB-456 50
- ベストアンサー
- オフィス系ソフト
- 行と列を入れ替えた式
行と列を入れ替えた式 A=(a b c d)とします。この行列の行と列を入れ替えた行列は(a c b d)らしいんですが、行と列を入れ替えるという意味がよくわかりません 僕は、1行目と1列目を換えて、2行目と2列目を換えると考えました。しかし、その場合は(a b c d)で元に戻ってしまします。 何故、僕の考えでは行と列を入れ替えた行列にならないんでしょうか?? 誰か、うまく教えらる人 アドバイスおねがいします
- ベストアンサー
- 数学・算数
- 行と列を指示して表中の値を表示する方法を教えて下さい。
ある行と列を指示して下表の様な値を表示する方法を教えて下さい。 例)A1セルに2行と入力、A2セルに4列と入力をしたら、A3セルに答えの"8"が出るようにしたい。 1列 2列 3列 4列 5列 1行 A B C D E 2行 1 5 6 8 9 3行 F G H J K 4行 3 4 1 5 8 5行 T R W A S
- ベストアンサー
- オフィス系ソフト
お礼
真意がわからない質問を書いてしまい申し訳ありません。それなのに2度もご回答くださいましてありがとうございました。VBAを現在勉強中なので、参考にさせていただきまして最短で良い仕事になるよう頑張ります。