Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MS Excel 2010中查找一列中的字符串并获取另一列中的所有对应值_Excel - Fatal编程技术网

在MS Excel 2010中查找一列中的字符串并获取另一列中的所有对应值

在MS Excel 2010中查找一列中的字符串并获取另一列中的所有对应值,excel,Excel,问题:- 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

问题:-

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或编程

尝试了索引和匹配公式,该公式为相邻列中的一个单元格提供值,但我需要获得表中提到的所有引用

需要在另一张表格中作为总结

[这是物料清单(BOM)表]

表中总共有48000行和15列,而15000行是唯一的。出于汇总目的,我们只需要15列中的2列。某些单元格引用了20次或更多次,因此需要将所有这些值填充到不同的列中

我试图从中获取此数据的工作表使用MS Query链接到另一个源文件


PS:很抱歉在原始查询中没有提供任何信息。

此代码将创建一个名为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
子PostRowsToColumns()
尺寸X为长,Y为长,MyArr为变体
ActiveSheet.Copy After:=工作表(Worksheets.Count)
ActiveSheet.Name=“RowsToColumns”
范围(“A2:B”和范围(“A”和行数).End(xlUp.Row).排序范围(“A1”)
Y=2
对于X=2到范围(“A”&行数)。结束(xlUp)。行
如果范围(“A”&X).text范围(“A”&X).Offset(-1,0).text然后
MyArr=Application.Transpose(范围(“B”和X)、调整大小(工作表函数.CountIf(范围(“A2:A”)和范围(“A”和行.Count)、结束(xlUp.Row)、范围(“A”和X))、1))
范围(“D”和Y)=范围(“A”和X)。文本
如果范围(“B”和X).调整大小(工作表函数.CountIf(范围(“A2:A”)和范围(“A”和行.Count).结束(xlUp).Row),范围(“A”和X)),1).行数>1
范围(“E”和“Y”)。调整大小(1,UBound(MyArr))=MyArr
其他的
范围(“E”和Y)=MyArr
如果结束
Y=Y+1
如果结束
下一个
列(“A:C”)。删除移位:=xlToLeft
端接头

假设第1列为
A2:A9
,第2列为
B2:B9
,则使用从
A11
开始的第1列值的“唯一列表”,您可以在
B11
中使用此公式,并用CTRL+SHIFT+ENTER键确认,然后向下和横向复制

=IFERROR(索引($B$2:$B$9,小型)(如果($A$2:$A$9=$A11,行($A$2:$A$9)-行($A$2)+1),列($B11:B11)),“”)

您可以扩展到更大的范围(或其他工作表中的数据),但如果有大量这样的公式,则可能会大大降低工作簿的速度

请参见此处的示例文件:


您没有提出任何实际问题或提供太多细节。例如--您是在寻找常规的电子表格公式、数组公式还是VBA结果?“需要解决方案”是在不同的汇总表上,还是修改原始表的目的?除了向Stack Overflow发布一个隐式问题外,您还尝试过做什么?您在哪里遇到了困难?我们经常以这样或那样的形式询问和回答这一问题。最近的一个例子是。如果这还不能解决你的问题,请在本网站的Excel论坛中研究术语“转置”。我需要Excel公式。我尝试了索引和匹配公式,它给了我一列,但不确定如何获取所有引用。需要将它放在不同的表中,而不是从中获取详细信息。嗨,Barry,非常感谢…这与我正在寻找的类似。不幸的是,由于我在列中有20000多个唯一值,excel需要花费很多时间。无论如何,再次感谢公式。我们有没有不带数组的公式?非常感谢..我今天得到了同样的要求,下面是3.5年后等待的精确解:)