A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
こんにちは
横からですが、VBAでの別方法の一例です。
データが重複している場合は、結果的に無視してよいものと解釈しました。
途中に空白セルが混在しているなどについては想定していません。
(チェックしてスキップすればよいだけですが…)
データのあるシート名と結果を表示するシート名を正しく修正しておいてください。
(現状はSheet1、Sheet2にしてあります。)
Sub Sample()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim dicR As Object, dicC As Object
Dim rw As Long, maxR As Long
Dim v1, v2
Set sh1 = Worksheets("Sheet1") '←元データのあるシート
Set sh2 = Worksheets("Sheet2") '←結果を表示するシート
Set dicR = CreateObject("Scripting.Dictionary")
Set dicC = CreateObject("Scripting.Dictionary")
maxR = sh1.Cells(Rows.Count, 1).End(xlUp).Row
sh2.Cells.Clear
For rw = 1 To maxR
v1 = sh1.Cells(rw, 1).Value
If Not dicR.exists(v1) Then
dicR.Add v1, dicR.Count + 1
sh2.Cells(dicR(v1), 1).Value = v1
End If
v2 = sh1.Cells(rw, 2).Value
If Not dicC.exists(v2) Then dicC.Add v2, dicC.Count + 2
sh2.Cells(dicR(v1), dicC(v2)).Value = v2
Next rw
Set dicR = Nothing
Set dicC = Nothing
End Sub
No.5
- 回答日時:
No.2です。
>実施してみたところ課題があり・・・
今回はSheet3を作業用として使用するようにしていますので、
操作するブックにはSheet3を使っていない状態にしておいてください。
Sub Sample2()
Dim i As Long, lastRow As Long
Dim c As Range, r As Range
Dim wS2 As Worksheet, wS3 As Worksheet
Set wS2 = Worksheets("Sheet2")
Set wS3 = Worksheets("Sheet3")
wS2.Cells.ClearContents
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS2.Range("A1"), unique:=True
.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS3.Range("A1"), unique:=True
wS3.Range("A1").Sort key1:=wS3.Range("A1"), order1:=xlAscending, Header:=xlYes
lastRow = wS3.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS3.Cells(2, "A"), wS3.Cells(lastRow, "A")).Copy
wS2.Range("B1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS2.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
Set r = wS2.Rows(1).Find(what:=.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
wS2.Cells(c.Row, r.Column) = wS2.Cells(1, r.Column)
Next i
End With
wS3.Cells.Clear
wS2.Rows(1).Delete
wS2.Activate
wS2.Range("A1").Select
Application.ScreenUpdating = True
MsgBox "完了"
End Sub
今度はどうでしょうか?m(_ _)m
No.4
- 回答日時:
添付図参照
E1: =IFERROR(INDEX($B$1:$B$15,SMALL(IF($A$1:$A$15=$D1,ROW(A$1:A$15),""),COLUMN(A1))),"")
【お断り】上式は必ず配列数式として入力のこと
No.3
- 回答日時:
多分、No2の方から回答の再提示があると思いますので、いまのところ回答するつもりはありませんが、
>実施してみたところ課題があり
>A1 X1 X2 X3
>B1 空 X2 空 X4
>C1 X1
>D1 空 空 空 空 X5 X6
>E1 空 X2 空 X4 X5 X6
>というようにする必要があることが分かりました。
>ここは、関数で何とかなりそうです
変更前のB列の実際の値は、X1,X2,・・・X999のようにXと数字だけなのですか。
それであれば、マクロで、最初からそのようにすることは可能です。(X1,X2は単なる例で、実際は違う値であればできません)
No.2
- 回答日時:
こんにちは!
VBAになりますが、一例です。
元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行になっていて、2行目以降にデータがあるとします。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.ClearContents
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
.Range("A1").AutoFilter field:=1, Criteria1:=wS.Cells(i, "A")
Range(.Cells(2, "B"), .Cells(lastRow, "B")).SpecialCells(xlCellTypeVisible).Copy
wS.Cells(i, "B").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next i
.AutoFilterMode = False
End With
wS.Activate
wS.Range("A1").Select
Application.ScreenUpdating = True
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
早速ありがとうございます!
頂いたVBAを実施してみたところ無事並び替えができました。
実施してみたところ課題があり
A1 X1 X2 X3
B1 空 X2 空 X4
C1 X1
D1 空 空 空 空 X5 X6
E1 空 X2 空 X4 X5 X6
というようにする必要があることが分かりました。
ここは、関数で何とかなりそうです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 場合の数、確率 45 (浜松医科大学) 1 2023/07/29 13:52
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) エクセルの表で A1にデータの入力規則でリストを作って、 (リス、キリン、ゾウとします) リストを選 4 2022/07/15 09:29
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- 数学 ハイネボレルの被覆定理、内田伏一著 「集合と位相」定理22.1 1 2022/07/07 10:49
- Excel(エクセル) エクセル シート内のボックスを縦並びから横並びに 7 2023/04/05 04:28
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
excelで複数行を一行に並び変える方法
Excel(エクセル)
-
excelで複数行にまたがるデータを1行にまとめたい
Excel(エクセル)
-
-
4
エクセルで複数行のデータを1行にする方法
Excel(エクセル)
-
5
エクセルで複数行に散らばった同一人物の情報を一行にまとめたい
Excel(エクセル)
-
6
VBAのマクロで、複数行を1行に集計
Access(アクセス)
-
7
エクセルVBAで複数列データを1列に配列替えしたい
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
-
10
エクセルで複数列を1列にまとめるマクロ
Excel(エクセル)
-
11
キーが同じを複数行を1行にまとめるには?
Oracle
-
12
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
13
excel関数式の一部を太字にする
その他(Microsoft Office)
-
14
エクセル 横並びの複数行データを縦1列にしたい
Excel(エクセル)
-
15
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
16
Excelに埋め込んだVBAのプログラムが消えた。
その他(Microsoft Office)
-
17
Excelで一行おきに2行の空白行を挿入したい
その他(Microsoft Office)
-
18
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
19
Excel VBAで、横並びのデータを縦並びにしたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
excelの不要な行の削除ができな...
-
Excelマクロ 差分抽出の方法が...
-
EXCEL の表を一行ずつシートに...
-
EXCELで2つのファイルから重複...
-
【マクロ】同じフォルダ内にあ...
-
VBAで CTRL+HOMEの位置へ移動...
-
オートフィルタで抽出したデー...
-
トランジスタの選び方
-
Excel VBA2つのシートのデータ...
-
エクセルで複数の条件を抽出し...
-
エクセルのカメラ機能について
-
エクセルで名簿を50音で切り分ける
-
ユーザーフォームで別シートを...
-
重いExcelファイルのことで教え...
-
Excelで日付変更ごとに、自動的...
-
【エクセルマクロ】複数シート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
excelの不要な行の削除ができな...
-
VBAで CTRL+HOMEの位置へ移動...
-
(VBAにて)日付でデータを抽出す...
-
EXCELで2つのファイルから重複...
-
他のシートの一番下の行データ...
-
エクセルのカメラ機能について
-
トランジスタの選び方
-
別々のシートの表をピボットテ...
-
エクセル 縦に長い表の印刷時...
-
EXCEL 複数行のデータを1行にま...
-
【エクセル」 特定のセルで条件...
-
オートフィルタで抽出したデー...
-
Excel 売上管理シートに入力し...
-
エクセル VBA VLOOKUP
-
EXCEL の表を一行ずつシートに...
おすすめ情報