使用公式提取具有相同行名的所有信息(不同)以形成一个Excel工作表

时间:2019-03-30 13:25:50

标签: excel excel-formula

我有一个excel工作表,其中的表中有多行具有相同名称的行,并在相应列中具有不同的信息。现在,使用公式我想将此信息提取到新表中?解决方案必须使用卓越的配方吗?没有筛选器,没有专用表或VBA

我尝试了vlookup。搜索多个值。我不希望从单个列而是从所有列获取信息。可能有成千上万个具有相同和不同值的列。

我尝试过这个公式:= INDEX(Worksheet!A2:AK350; KKLEINSTE(WENN((A5 = Worksheet!A2:A350); VERGLEICH(ZEILE(Worksheet!A2:A350)); ZEILE(Worksheet!A2:A350 ));“”); 1))

该表格如下所示:

  

将人们的薪水状况

     

日本| resident_1 | 564 |未婚
  德里| resident_1 | 655 |未婚
  中国| resident_1 | 564 |未婚
  日本|居民_2 | 748 |未婚

     

现在,我想从上面提取一个子表,就像所有   地点名称为“ japan”的信息

     

不同表中每个地方的结果应该是这样:

     

日本| resident_1 | 564 |未婚
  日本|居民_2 | 748 |未婚

1 个答案:

答案 0 :(得分:0)

看起来像是从事高级过滤器的工作,但是您已经规定了“没有过滤器” 。如果您可以在主表中添加两个帮助器列,则可以使用以下方法。

这是我的main_table工作表(请注意,以红色概述的列已添加)。

main_table worksheet

  • E(从单元格E2开始)中的公式为:=CONCAT(A2,"|",B2,"|",C2,"|",D2)
  • F(从单元格F2开始)中的公式为:=ROW()-ROW($F$2)+1
  • 将这些公式拖放到主表的最后一行。

这是我的sub_table工作表(请注意,顶部以绿色概述的单元格,您将最终在其中指定过滤条件)。

sub_table worksheet

  • A(从单元格A5开始)中的公式为:=ROW()-ROW($A$5)+1
  • B(从单元格B5开始)中的公式为:=IFERROR(SMALL(IF(ISNUMBER(SEARCH($B$2,main_table!$E$2:$E$10)),main_table!$F$2:$F$10,""),$A5),"")
  • CDEF列(从单元格C5开始)的公式为:=IF(ISNUMBER($B5),INDEX(main_table!$A$2:$D$10,$B5,COLUMNS($C5:C5)),"")
  • 单元格B2中的公式为:=CONCAT(IF(ISBLANK($C$2),"*",$C$2),"|",IF(ISBLANK($D$2),"*",$D$2),"|",IF(ISBLANK($E$2),"*",$E$2),"|",IF(ISBLANK($F$2),"*",$F$2))
  • 您应将公式向下拖动,以获得与主表中相同的行数。

我认为较新/即将推出的Excel版本具有JOIN工作表功能,它比我上面对CONCAT的使用更为方便/灵活(因此,如果您可以使用它,可以使用它)。

将过滤条件保留为空白应为您提供所有行。如果要部分匹配,请在输入中添加通配符,例如jap*resident_*。如果主表中的任何值包含|,则可能需要在CONCAT公式中使用其他定界符(否则可能会得到意外的结果/行为)。

完成后,也许可以如下所示使用它:

Usage

看看这种方法是否对您有好处(您可能需要将公式转换为您的语言环境/区域)。