No.3ベストアンサー
- 回答日時:
皆さんの難しい式は読解しておりませんが、A列が仲間同士で並んでいなくても対応できるVBAコードです。
非連続セルをコピー貼り付けすると、エクセルが勝手に詰めてくれた事を思い出して組んでみました。
正統的でも、分かりやすくもないコードですが、ご参考まで。
’Sheet1のデータをSheet2に転記します。
Sub test()
Dim targetRange As Range, myCell As Range, destCell As Range
Dim myDic As Object, myKey As Variant
Set myDic = CreateObject("Scripting.Dictionary")
Set targetRange = Sheets("Sheet1").Range("A1").CurrentRegion
Set destCell = Sheets("Sheet2").Range("A1")
For Each myCell In targetRange.Columns(1).Cells
If Not myDic.exists(myCell.Value) Then
myDic.Add myCell.Value, myCell.Offset(0, 1)
Else
Set myDic.Item(myCell.Value) = Union(myDic.Item(myCell.Value), myCell.Offset(0, 1))
End If
Next myCell
For Each myKey In myDic.keys
destCell.Value = myKey
myDic.Item(myKey).Copy
destCell.Offset(0, 1).PasteSpecial Paste:=xlValues, Transpose:=True
Set destCell = destCell.Offset(1, 0)
Next myKey
Set myDic = Nothing
End Sub
No.2
- 回答日時:
シート1のAおよびB列の2行目から下方にデータがあるとします。
シート1のC列は作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,INT(MAX(C$1:C1)+1)+0.0001,INT(MAX(C$1:C1))+COUNTIF(A$2:A2,A2)*0.0001))
シート2にはお望みの表を作るとしてA2セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(COUNTIF(Sheet1!$C:$C,ROW(A1)+0.0001)=0,"",IF(COLUMN(A1)=1,INDEX(Sheet1!$A:$A,MATCH(ROW(A1)+0.0001,Sheet1!$C:$C,0)),IF(COUNTIF(Sheet1!$C:$C,ROW(A1)+(COLUMN(A1)-1)*0.0001)=0,"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1)+(COLUMN(A1)-1)*0.0001,Sheet1!$C:$C,0),2))))
この方法は配列数式にするなどの複雑なしかも計算に負担がかかるような方法を使用しておりません。
No.1
- 回答日時:
こんにちは!
一例です。
↓の画像のようにSheet1のデータをSheet2に表示するようにしてみました。
Sheet1に作業用の列を設けています。
作業列C2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(),"")
としてオートフィルでずぃ~~~!っと下へコピー!
Sheet2のA2セルに
=IF(COUNT(Sheet1!C:C)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!C:C,ROW(A1))))
B2セルに
=IF(OR($A2="",COUNTIF(Sheet1!$A:$A,$A2)<COLUMN(A1)),"",INDEX(Sheet1!$B$1:$B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$A2,ROW($A$1:$A$1000)),COLUMN(A1))))
(これは配列数式になってしまいますので、Shift+Ctrlキーを押しながらEnterキーで確定します。)
このB2セルを列方向にコピーしておきます。
最後にA2~最終列2行目を範囲指定し、下へオートフィルでコピーすると画像のような感じになります。
なればよいのですが・・・m(__)m
ご回答ありがとうございます。
関数でもできるとこをがわかり大変勉強になりました。
この度は、図まで示していただきありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセル シート内のボックスを縦並びから横並びに 7 2023/04/05 04:28
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excel関数について質問です。 シート1に入力シートがあります。 =A1 =B1などで離れた数字な 5 2022/12/18 13:42
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) セルの計算の上限値を設定し、残りを別のセルに表示させる 7 2022/06/17 13:12
- 統計学 個別の期待値は小さいけど集計すると期待値は大きくなる場合とは? 4 2022/06/14 08:27
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
-
エクセルで同じ名前の人が同じ列にくるように並べ替えたい
Excel(エクセル)
-
Excelで隣のセルと同じ内容に列を並べ替える方法
Excel(エクセル)
-
-
4
excel 同じ番号のデーターを横に並べたいです。
Excel(エクセル)
-
5
同じ行に同じ文字列のものを並べたい
Excel(エクセル)
-
6
エクセルでA列と同じ並びにB列を並び替える方法を教えて下さい
Excel(エクセル)
-
7
EXCEL関数:重複した値がある並び替えについて
Excel(エクセル)
-
8
エクセルで異なる列のデータを一致させて並び替え
Excel(エクセル)
-
9
エクセル 2つの表の並べ替え
Perl
-
10
エクセル 同じ値を探して隣の数値をコピーする
Excel(エクセル)
-
11
EXCELのVBAで、重複データを隣のセルへ移動したい
Access(アクセス)
-
12
2つのエクセルのデータを同じように並べ替えたい
Excel(エクセル)
-
13
エクセルで条件に一致したセルの隣のセルを取得したい
その他(Microsoft Office)
-
14
エクセルで長い行を5行ごとに1列にするには?
Excel(エクセル)
-
15
Excel A列と同じ並びにしたい
Excel(エクセル)
-
16
エクセルで一致するデータを紐付けしたい。
財務・会計・経理
-
17
Excelマクロでセルの値を他のセルに表示する方法
その他(Microsoft Office)
-
18
エクセルで横並びの複数データを縦のデータにしたい こんにちは。宜しくお願い致します。 A B C D
ソフトウェア
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
Excelで空白以外の値がある列の...
-
ウィンドウィズ メモ帳で日付だ...
-
Excelに貼ったリンクについて E...
-
Microsoft Formsの「個人情報や...
-
Excelで時間計算(負)
-
microsoft office
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
マイクロソフト 一時使用コード...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
Googleのスプレッドシートでシ...
-
Microsoft Officeを2台目のPCに...
-
MicrosoftOfficeについて質問で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報