![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
以下のように各ID毎に、縦持ちでデータを持っているとします。
ID データ
ABC golf
ABC baseball
ABC basketball
DEF baseball
DEF soccer
GHI soccer
GHI golf
GHI volleyball
GHI basketball
JKL swimming
それを以下のように各ID毎に、横持ちで1行で表したいです。
ABC golf, baseball, basketball
DEF baseball, soccer
GHI soccer, golf, volleyball, basketball
JKL swimming
ID数が膨大で、かつデータの種類が多岐に渡るため、
エクセルでなくても構わないのですが、上記を簡単に実現できる方法をご存知の方教えてください!
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは!
>それを以下のように各ID毎に、横持ちで1行で表したいです。
セルは別々になっても良い!というコトとして・・・
VBAになりますが、一例です。
元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。
Sub Sample1() 'この行から//
Dim i As Long, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
wS.Cells(c.Row, Columns.Count).End(xlToLeft).Offset(, 1) = .Cells(i, "B")
Next i
End With
Application.ScreenUpdating = True
wS.Activate
MsgBox "完了"
End Sub 'この行まで//
※ 関数でないのでデータ変更があるたびに
マクロを実行する必要があります。m(_ _)m
No.3
- 回答日時:
マクロ音痴な私なら、[No.2]の d-q-t-pさんのアイディアに飛び付いてソレで終わりです。
だけど、それまでにアーでもない、コーでもないと考えていたので、私自身の備忘録そして貴方への別解として、記しておきます。「縦持ちデータ」を添付図の Sheet1 とします。それを「横持ちデータ」として Sheet2 に実現します。
ちなみに、初耳の「縦持ち(横持ち)」、中々乙な表現ですね。どの業界の言葉なのでしょうか?
1.Sheet1 の列Aを[コピー]して、Sheet2 の列Cに[貼り付け]
2.Sheet2 の列Cを選択して、[データ]→
 ̄ ̄[データツール <重複の削除>]
3.下の各セルにそれぞれ右側の式を入力
 ̄ ̄ A2: =MATCH(C2,Sheet1!A:A,0)
 ̄ ̄ B2: =COUNTIF(Sheet1!A:A,C2)
 ̄ ̄ D1: =IF(COLUMN(A1)>MAX($B:$B),"","Events"&COLUMN(A1))
 ̄ ̄ D2: =IF(COLUMN(A1)>$B2,"",OFFSET(Sheet1!$A$2,$A2-2+COLUMN(A1)-1,1))
4.範囲 A2:B2 のフィルハンドルをマウスで「エイヤッ!」
 ̄ ̄とダブクリ
5.セル D1 を右方へズズーッとオートフィル
6.セル D2 を右方へ(1行目が表示されている列まで。此処で
 ̄ ̄はセル G4 まで)ズズーッとオートフィル
7.範囲 D2:G2 のフィルハンドルをマウスで「エイヤッ!」
 ̄ ̄とダブクリ
![「縦持ちのデータを横持ちにする方法」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/298588_5817ef5a6bce8/M.jpg)
ありがとうございます!
OFFSET関数など難しいですね。。。
どんな処理をしているのか、がよくわかっていませんが、実現できました。
こんな方法もあるんですね。
ありがとうございます。
No.2
- 回答日時:
この「, 」がセルで分けるのか何なのかよく分かりませんが 見たまま
だと解釈します。
A列が昇順にソート
C2:=IF(A2=A3,B2&", "&C3,B2)
フィルハンドルをダブルクリック
C列をコピー→その場で値貼り付け
[データ]の[重複を削除]
ID列を指定して[OK]
B列を削除
でいいと思います。
一つのセルにカンマ区切りで値をすべて入れられるのはものすごく良いですね!
本当はセルは分けたかったのですが、CSVで保存すればほとんど同じことですね。
マクロも使わず解決できるのは素晴らしい方法です。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 I like soccer and baseball. はOがsoccer and baseball 4 2022/08/16 22:41
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- 英語 一般動詞の疑問文、否定文の作り方 5 2022/11/10 18:17
- Excel(エクセル) Excelで、半角スペースをTABに変換する 5 2022/10/18 14:18
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- その他(スポーツ) 札幌ドームの話 1 2022/08/16 23:03
- 英語 canを過去形で使うとどう感じる? 8 2022/09/12 18:23
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) EXCELで同一セル内で自動的に改行されてしまう(難問) 6 2023/04/16 00:51
- その他(ブラウザ) webサイトに表示する画像の向きを変える(左右に回す)方法 3 2023/01/20 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
アクセスで教えてください。 縦持ちデータを横持ちデータに変更したいです。 項目数が多くてクロス集計で
Access(アクセス)
-
ACCESSで縦に並んだテーブルデータを横に並べることは出来ますか?
Access(アクセス)
-
VBA 縦のデータを横にするコード
IT・エンジニアリング
-
-
4
Accessで縦と横を入れ替えたい
その他(プログラミング・Web制作)
-
5
【アクセス】クエリで、行と列を入れ替えるには?【access】
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで 自動的に◯や数字を...
-
エクセルでファイルの最終更新...
-
シフト表をエクセルで作るとき...
-
Excel 2019 [オプション]の[リボンのユ...
-
Excelに詳しい方! B列が「日...
-
Excelファイルが開けません
-
excel2013 MonthDays 関数が使...
-
スプレッドシートの関数につい...
-
【マクロ】2回実行したら、エ...
-
特定の文字列を含む、住所を抽...
-
EXCELの散布図で日付が1900年に...
-
エクセルのツールバーから数値...
-
Excelで表を作ったところに文字...
-
祝日と土曜、日曜の合計をカウ...
-
Excelについて
-
【マクロ】名前を保存する際に...
-
Excel分数の表示について
-
エクセルでCtrl+Tでテーブルの...
-
マイクロソフトのPADを使ってい...
-
【EXCEL】画像の黄色部分の抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報