• ベストアンサー

エクセルのテーブルを縦に直したい

添付画像のようにテーブル形式になっているデータを、関数かVBAを使い縦に並ぶように変換できないでしょうか。 やりたいデータは元データの行が何百行かあります。 よろしくお願いいたします。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.1

ちょっと手抜きですが、こんなカンジでいかがでしょうか。 Sub teteyoko()  Dim LineCounter As Integer  Dim PutLineCount As Integer  Dim wkColCount As Integer  With ThisWorkbook   LineCounter = 2   PutLineCount = 1      Do    If .Sheets("会場横").Cells(LineCounter, 1).Value = "" Then Exit Do       For wkColCount = 1 To 4     .Sheets("会場縦").Cells(PutLineCount, 1).Value = _      .Sheets("会場横").Cells(LineCounter, 1).Value     .Sheets("会場縦").Cells(PutLineCount, 2).Value = _      .Sheets("会場横").Cells(LineCounter, 2).Value     .Sheets("会場縦").Cells(PutLineCount, 3).Value = _      .Sheets("会場横").Cells(1, wkColCount + 2).Value     .Sheets("会場縦").Cells(PutLineCount, 4).Value = _      .Sheets("会場横").Cells(LineCounter, wkColCount + 2).Value     PutLineCount = PutLineCount + 1    Next wkColCount       LineCounter = LineCounter + 1         Loop  End With   End Sub

sigesigeo1919
質問者

お礼

完璧にできました!! 本当にありがとうございます。 回答が早かったのでベストアンサーにさせていただきます。 よく勉強します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>やりたいデータは元データの行が何百行かあります。 提示の元データの範囲で同一シートへ返還後のデータを作成してみました。 H列に日付、I列に会場、J列に時間帯、K列にマークを抽出しました。 H3セルへ次の数式を設定します。 =IF(COUNTA($C$3:$F$12)>=ROWS(H$3:H3),OFFSET(A$3,INT((ROW()-3)/4),0),"") H3セルを右のI3セルへコピーします。 J3セルへ次の数式を設定します。 =IF(COUNTA($C$3:$F$12)>=ROWS(H$3:H3),INDEX($C$2:$F$2,1,MOD(ROW()-3,4)+1),"") K3セルへは次の数式を設定します。 =IF(COUNTA($C$3:$F$12)>=ROWS(H$3:H3),INDEX($C$3:$F$12,MATCH(H3,$A$3:$A$12,0),MATCH(J3,C$2:F$2,0)),"") H3:K3セルを同時に下へ必要数コピーすれば添付画像のような結果になります。

sigesigeo1919
質問者

お礼

関数でもできるのですね!!! 本当にありがとうございます。 よく勉強します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのテーブルについて

    データファイルを「挿入」→「テーブル」でテーブル形式に変換できると思いますが、 それを元に戻したいのですが、やり方がわからず困っています。 どなたかご存知の方、よろしくお願いいたします

  • エクセル2003と2010のピボットテーブル違い

    エクセルの2003と2010のピボットテーブルの仕様の違いで悩んでいます。 画像のスクリーンショットのエクセル2003のように 合計個数と金額が行の縦に並べるには 2010で表示するにはどうしたらできるのでしょうか? 以前から使っているデーター資料の形式が2003に沿ったもので 変更が難しいのです。 宜しくお願いいたします。

  • Excelのピボットテーブルをデータとして使いたい

    Excel(2007)で元データをピボットテーブルで加工し、その加工した表を再度データ(表)として使いたいことがよくあります。 添付画像の表1が元データで、これをピボットテーブルの表2にします。そこからコピー&ペーストして集計行を削除して、表3のようなデータを作りたいのです。この場合普通に作ると表3の黄色のセルが空白なので、上の値をコピー&ペーストしています。データが多いとこの作業がかなり面倒なので、なんとか楽をできないでしょうか? よろしくお願いします。

  • エクセル 2010 のピポット・テーブル

    エクセル 2003 でピポット・テーブルを使って,同じ列にあるデータの個数をカウントしていました。基本的な原理は全く分からないのですが,添付画像にあるように,カウントする列をアクティブにして(画像左)ピポット・テーブルを作動させますと,「ここの行にフィールドをドラッグします」,「ここにデータ アイテムをドッグします」という表示がなされ(画像中),その通りドラッグするとデータの個数を集計してくれます。(画像右) エクセル 2010 で同じ操作をさせようと思っているのですが,ピポット・テーブルの仕様が,以前と違うようで,操作の仕方が分かりません。手順をご指導いただけませんでしょうか。

  • excelで縦1列の名簿を縦3列の名簿に反映

    excelでデータが縦に並んだ、名簿のマスターデータの ブックがあります。(添付画像上部参照) そのマスターデータから、別のexcelブックに 課名と氏名のみを抽出し、縦3列の名簿を 作成したいです。(添付画像下部参照) 今は課ごとにコピー&ペーストにて対応していますが、 マスターデータが変更されたら、縦3列の名簿の内容も 自動的に反映されるようにしたいです。 また、縦3列の名簿は、各課ごとに1行以上の 空白行を挿入して、課の区切りが 分かりやすいようにしたいです。 課の人数は流動的なので、課のセルの固定はできません。 何かいい方法はないでしょうか。 よろしくお願いします。 Excel2013

  • CSSのテーブルの縦100%について

    CSSの縦100%指定について伺います。 現在、三行二列のテーブルを、縦100%のレイアウトにしようとしております。 上段一行は一列に統合して、ヘッダーを入れます。 下段一行は一列に統合して、フッターを入れます。 一行目と三行目の縦幅をピクセルで指定して、 二段目の高さをautoに指定し、 テーブル全体の縦の高さを100%にして、 ウィンドウサイズが変わったときに二段目のみが伸縮するように 出来るものでしょうか。 お分かりの方、どうぞご助言をお願いいたします。

  • テーブルの隙間を無くしたい

    DreamWeaverCS4を使いホームページを作成しております。そこでテーブルについて、狙い通りに上手く表示が出来なくて困っております。どなたかご指導アドバイスをお願い致します。具体的な内容は下記のとおりです。 ・テーブルを「7列2行(全体の大きさは横700px×縦100px)」で作成し、内訳は1行目は、一枠横100px×縦50pxの大きさで7枠作成。2行目は横700px×50pxで作成。 上記内容のテーブル1行目に横100px×縦50pxのサイズの画像を7つ挿入。そして2行目には横700px×縦50pxの画像を1つ挿入しました。 そしてテーブルの設定は「ボーダーは0」です。 しかし、画像挿入後には2行目の画像横700px×縦50pxが入っているテーブルに隙間が出来て背景が見えてしまいます。1行目を見ると…微妙に各画像間の間に隙間が空いていて、この隙間が全体的に700pxを超えているようなんです。それで、2行目の画像に対して背景が見えて(テーブルの幅が広がってしまっています)いるのです。 そこでですが、画像を配置後にテーブルの隙間をきっちりと無くして背景が見えなくする方法ってあるのでしょうか? 解る方がいましたら…ご指導…アドバイスをお願い致します…。よろしくお願い致します…。

    • ベストアンサー
    • HTML
  • Excel テーブル内の空白行の削除について

    テーブルの任意の行のデータを削除し、空白削除ボタン(cmd_Blank)をクリックすると削除したデータ行(空白行)を削除するVBAを作ったのですが空白行が1つの場合は問題なく動作するのですが(添付左)、 ・空白セルがあるとその行がすべて削除されてしまう(添付中央)。 ・空白行が2つ以上あるとエラーになってしまう(添付右) という問題に悩んでいます。 空白削除ボタンクリック時のコードは Private Sub cmdBlank_Click() ActiveSheet.ListObjects("T住所").DataBodyRange.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub になります。 添付の図がわかりにくいかと思いますが、ボタンクリックすると テーブル内の空白行があったら、その行のみ削除され、上詰めに したいということです。 どなたか教えていただきたいです。

  • エクセルで作成した表をHTMLのテーブルに変換

    お世話になります。 掲題の通り、エクセルで作成した表をHTMLのテーブルに変換したいと 考えておりますが、事情があってエクセル内でマクロ(VBA?)で実行したいです。 理由は、私自身であればそもそもHTML直打ちないしWEB系ソフトで テーブルを作ることが出来るのですが、今回はWEBの知識ゼロの メンバーも含めて人海戦術的にHTMLのテーブルを色々なパターンで 作る必要があるからです。 作ることになるテーブルはサイズ表であるため、 一番小さい場合は 「サイズ展開が1つに対し、縦の長さ、横の長さを表示する」ものになります。 テーブルにはサイズ展開のタイトル行と、縦・横のタイトル列を含みますので つまりテーブルとしては、2列×3行になります。 行が一番増える場合は 「サイズ展開が1つに対し、縦の長さ、横の長さ、高さを表示する」ものになります。 テーブルにはサイズ展開のタイトル行と、縦・横・高さのタイトル列を含みますので つまりテーブルとしては、2列×4行になります。 また、上記はどちらのサイズ展開が1サイズ分しかない場合となりますが このサイズ展開はアイテムにより異なり、最小で1、最大で6まであり得ます。 ちなみに、タイトル行の文言もタイトル列の文言も何パターンかあります。 このような状況のときに、エクセルに入力されるのは最大7列4行ですので、 そのエリアを見て、値が入力されているかいないかにより表のサイズを見極め、 また、その入力されている値を参照して、テーブル化したいというのが希望です。 このとき、コマンドボタンを用意して、表に入力をした後でそのボタンを押せば、 求めるテーブルタグ表記が別の場所に自動セットされる、という仕様を求めています。 とにかく、沢山サイズを測りまくる他のメンバーがなるべくとっつきやすい方法を 模索しています。 ちなみに、上記のような事が出来ない場合は、エクセルないし紙に書いてもらった サイズ表を見ながら私がテーブルタグ化していく、となるので進みが一気に遅くなる ため、出来るだけ他メンバーが簡単にテーブルタグ化まで出来ることが 強い希望となります。 ちなみにテーブルの幅は入力している列数によりwidthを50ずつ増やしたいです。 添付した画像は、色々な大きさの表があり得ることを示しています。 複数のテーブルを用意して、ひとつのボタンで結果を得ようとしているものではありません。 特定のエリアを決めて、そこに他メンバーが順番にエクセルの表をコピペして、 その後ボタンを押して結果を取得し他の場所に保存。 そしてまた次の表をセットして・・・という作業の流れになるかと思っています。 ちなみに、VBAを自分でコーディングした経験はありません。 関数で出来ないことを質問した結果、マクロでの対応を進められて、 標準モジュールにコピペしてそれを使ったことがある程度です。 そのため、「開発」タブからコマンドボタンを選んで用意しましたが そのボタンを押したらVBAのアクションが実行される仕組みも 調べないとわからないレベルです。 解決方法をご教示頂ければ幸いです。 そもそもこういった制御は出来ない、ですとか こういった代替方法がある、など、実現方法に こだわりはありません。 よろしくお願いいたします。

  • Excelのテーブルについて

    Excelについて教えてください。 Office365を使っています。 表形式でのデータ管理が手間になり、テーブルを使って 管理をしようとテーブル機能について勉強しています。 「テーブルスタイル」からデザインを変更したり、新しく 自分でスタイルを作成することができるようですが、 スタイルを右クリックした時に表示されるメニューに  「適用(書式をクリア)」  「適用(書式を保持)」 とあるのですが、これはどのような時に使うものなのでしょうか?(添付画像赤枠の部分) 「書式をクリア」の方はなんとなくわかるのですが、「書式を保持」 を使う場面や利点がわからなく、モヤモヤしています。 どなたか教えていただけますでしょうか。 よろしくお願いします。

専門家に質問してみよう