问题 -
Column 1 Column 2
------------------
A AB
B PR
C EF
A GH
A JK
C XY
A UV
D YZ
需要解决方案
Query Column 2 column 3 column 4 Column 5
A AB GH JK UV
B PR
C EF XY
D YZ
我需要Excel公式,没有VBA或编程。
Tried Index&匹配公式,它给出了相邻列中一个单元格的值,但我需要获得表中提到的所有引用。
需要在另一张表中作为摘要。
[这是物料清单(BOM)表]
表中共有48000行和15列,而15000行是唯一的。我们也只需要15列中的2列用于汇总目的。一些单元格被引用20次或更多次因此需要填充所有这些值不同的栏目。
我尝试获取此数据的工作表使用MS Query链接到另一个源文件。
PS:抱歉原始查询中没有提供任何信息。
答案 0 :(得分:0)
此代码将创建一个名为RowsToColumns的新工作表,其中包含夏令时数据。
Sub PostRowsToColumns()
Dim X As Long, Y As Long, MyArr As Variant
ActiveSheet.Copy After:=Sheets(Worksheets.Count)
ActiveSheet.Name = "RowsToColumns"
Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row).Sort Range("A1")
Y = 2
For X = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & X).text <> Range("A" & X).Offset(-1, 0).text Then
MyArr = Application.Transpose(Range("B" & X).Resize(WorksheetFunction.CountIf(Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row), Range("A" & X)), 1))
Range("D" & Y) = Range("A" & X).text
If Range("B" & X).Resize(WorksheetFunction.CountIf(Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row), Range("A" & X)), 1).Rows.Count > 1 Then
Range("E" & Y).Resize(1, UBound(MyArr)) = MyArr
Else
Range("E" & Y) = MyArr
End If
Y = Y + 1
End If
Next
Columns("A:C").Delete Shift:=xlToLeft
End Sub
答案 1 :(得分:0)
假设您的第1列为A2:A9
,第2列为B2:B9
,则使用&#34;唯一列表&#34;从A11
开始的第1列值,您可以在B11
中使用此公式,使用 CTRL + SHIFT + ENTER确认并向下复制
=IFERROR(INDEX($B$2:$B$9,SMALL(IF($A$2:$A$9=$A11,ROW($A$2:$A$9)-ROW($A$2)+1),COLUMNS($B11:B11))),"")
您可以扩展更大的范围(或其他工作表中的数据),但如果您有大量此类公式,则可能会大大降低您的工作簿速度
请参阅此处的示例文件:
https://www.dropbox.com/s/f1hqut8s6u0n7ln/Code%20List.xlsx?dl=0