Tips横持ちデータを縦持ちデータに変換するケース(詳しくはこちらを参照のこと)の逆バージョンです。どちらも単なる行列の転置とは異なりますので注意してください。基本的にクロス集計クエリ(SQLでいうTransform句)を用いて対応することとなります。クエリによるものとはいえ横持ちにするという発想自体を好まない方もいるかもしれませんが、ニーズは決して低くはないので覚えておいて損はないと思います。具体的な例として右のようなテーブルを用いるものとします。氏名ごとに、その趣味を横並びにするというわけです。連番をそのまま列見出しとして使うことができるため、最も扱いやすいケースです。クロス集計クエリウイザードでやってみます。行見出しを「氏名」、列見出しを「趣味連番」とします。集計の対象となる列は当然「趣味」となりますが、趣味の名称がそのまま表示されるように集計方法を「先頭」とします(実際「カウント」以外は大丈夫です)。「集計値を表示する」は不要ですのでチェックを外します。データシートビューです。具体的な例として右のようなテーブルを用いるものとします。横並びにしようとするデータ(趣味)がコードで整理されている例ですが、クロス集計クエリウイザードでこのコードをそのまま列見出しとして使うとスカスカのクエリ(本来のクロス表ですが)になってしまいますので、連番を算出する必要があります。具体的な方法ですが、テーブルをもとにクエリを作り、Dcount関数を用いて氏名,趣味コードからを連番を算出します。連番となる列には次のような式を入力します。[趣味コード])データシートビューです。このクエリをもとに、上記の例と同じようにクロス集計クエリウイザードを設定すれば上記の例と同じような横持ちデータが得られます。サブクエリを使えばクエリは1個で済みますので知識のある方はチャレンジしてみてください。注意点ですが、並び順は趣味コードに基づくものとなりますので上記の例と全く同一のデータにはなりません。1つの名前に対して同一の趣味が複数記録されている場合、Dcount関数によって同一の連番が付与されます。そのデータをもとにクロス集計クエリを作成すると、同一人物の同一の趣味は1回しか表示されません。データの数が減ってしまいます。この例の場合は(同一人物の同一の趣味を2回以上表示しても意味がないので)問題なさそうですが、データの性質によっては問題となりえます。具体的な例として右のようなテーブルを用いるものとします。趣味に番号がないので戸惑うかもしれませんが、仕方ありませんのでテキスト型である「趣味」列に基づき連番を算出してしまいましょう。クエリを作り、Dcount関数を用いて氏名,趣味からを連番を算出します。式は次のようになります。"'")データシートビューです。このクエリをもとに、上記の例と同じようにクロス集計クエリウイザードを設定すれば最初の例と同じような横持ちデータが得られます。サブクエリを使えばクエリを減らせる点、並び順が「趣味」列の並び順に沿ったものとなる点、同一人物の同一の趣味が1回しか表示されない点については1つ上の例と同じです。読者になるこのブログについてスポンサーリンク注目記事サイト内検索スポンサーリンクはてなブログをはじめよう!accs2014さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。