将重复行的唯一值移动到新列
Move Duplicate Rows Unique Value to New Column
我有一个难题,希望有人能提供一些帮助。
我有一个包含大约 20,000 行帐户数据的文件,但是由于某些原因,这些行由于包裹服务而重复,看起来像这样:
账户名---加入日期---其他栏目----套餐
帐户 1 ---------- 1/1/19 ------ 数据 ------------------ 主包
账户 1 ---------- 1/1/19 ------ 数据 -------------- 螺栓开启
帐户 1 ---------- 1/1/19 ------ 数据 -------------- 添加
帐户 2 ---------- 1/1/18 ------ 数据 ------------------ 主包
帐户 3 ---------- 1/1/17 ------ 数据 ------------------ 主包
帐户 3 ---------- 1/1/17 ------ 数据 -------------- 添加
帐户 4 ---------- 1/1/19 ------ 数据 ------------------ 主包
是否可以在 Excel 中使用某种类型的 INDEX 或我可以创建一个新选项卡的东西,其中每个帐户名称只有一行,然后它会在该列中查找 Package 列并添加第一个值,然后如果有其他匹配项,它会将它放在下一列中?
所以它看起来像这样:
帐户名称------加入日期--------其他栏目------主套餐-----额外项目---额外项目
帐户 1 -------------- 2019 年 1 月 1 日 ---------- 数据 -------------- - 主要包装 ----- 螺栓安装 -------- 添加
帐户 2 -------------- 1/1/18 ------------ 数据 -------------- - 主包
帐户 3 -------------- 2017 年 1 月 1 日 ---------- 数据 -------------- - 主包 ----- 添加
帐户 4 -------------- 2019 年 1 月 1 日 ---------- 数据 -------------- - 主包
这可行吗?如您所见,我不需要他们根据包裹类型组织列,我只需要将此列移到行中,这样我每个帐户只有 1 行。
感谢您提供的任何帮助!
将第 1 行中的 headers(帐户、加入日期、其他列、主包、额外项目、额外项目...)填写如下:
Account:要么使用高级过滤器,去除重复的in-built函数,VBA或者下面的Index + Match函数=IFERROR(INDEX(Source!$A:$A, MATCH(0, IF(ISBLANK(Source!$A:$A),1,COUNTIF(Result!$A:A1, Source!$A:$A)), 0)), "")
Enter using Ctrl + Shift + Enter 并向下拖动。
Join Date & Other Column:将以下公式粘贴到Join Column下,拖动到Other column并向下拖动以填充。 =IFERROR(INDEX(Source!$A:$D, MATCH($A2,Source!$A:$A,0), COLUMN()), 0)
主包和附加项:使用 Ctrl + Shift + Enter 在主包下输入以下公式。向右拖动以填充额外的列,然后向下拖动以填充。 =IFERROR(INDEX(Source!$A:$D, AGGREGATE(15,4, IF(Source!$A:$A=$A2, ROW(Source!$A:$A)-ROW(Source!$A)+1), COLUMN()-COLUMN($A)-2), COLUMN(Source!$D)), "")
请参阅示例工作簿 https://1drv.ms/x/s!AklQqQDqhBrtg2LdK1FGM6QX4WG8?e=3GfMMD
我有一个难题,希望有人能提供一些帮助。
我有一个包含大约 20,000 行帐户数据的文件,但是由于某些原因,这些行由于包裹服务而重复,看起来像这样:
账户名---加入日期---其他栏目----套餐
帐户 1 ---------- 1/1/19 ------ 数据 ------------------ 主包
账户 1 ---------- 1/1/19 ------ 数据 -------------- 螺栓开启
帐户 1 ---------- 1/1/19 ------ 数据 -------------- 添加
帐户 2 ---------- 1/1/18 ------ 数据 ------------------ 主包
帐户 3 ---------- 1/1/17 ------ 数据 ------------------ 主包
帐户 3 ---------- 1/1/17 ------ 数据 -------------- 添加
帐户 4 ---------- 1/1/19 ------ 数据 ------------------ 主包
是否可以在 Excel 中使用某种类型的 INDEX 或我可以创建一个新选项卡的东西,其中每个帐户名称只有一行,然后它会在该列中查找 Package 列并添加第一个值,然后如果有其他匹配项,它会将它放在下一列中?
所以它看起来像这样:
帐户名称------加入日期--------其他栏目------主套餐-----额外项目---额外项目
帐户 1 -------------- 2019 年 1 月 1 日 ---------- 数据 -------------- - 主要包装 ----- 螺栓安装 -------- 添加
帐户 2 -------------- 1/1/18 ------------ 数据 -------------- - 主包
帐户 3 -------------- 2017 年 1 月 1 日 ---------- 数据 -------------- - 主包 ----- 添加
帐户 4 -------------- 2019 年 1 月 1 日 ---------- 数据 -------------- - 主包
这可行吗?如您所见,我不需要他们根据包裹类型组织列,我只需要将此列移到行中,这样我每个帐户只有 1 行。
感谢您提供的任何帮助!
将第 1 行中的 headers(帐户、加入日期、其他列、主包、额外项目、额外项目...)填写如下:
Account:要么使用高级过滤器,去除重复的in-built函数,VBA或者下面的Index + Match函数=IFERROR(INDEX(Source!$A:$A, MATCH(0, IF(ISBLANK(Source!$A:$A),1,COUNTIF(Result!$A:A1, Source!$A:$A)), 0)), "")
Enter using Ctrl + Shift + Enter 并向下拖动。
Join Date & Other Column:将以下公式粘贴到Join Column下,拖动到Other column并向下拖动以填充。 =IFERROR(INDEX(Source!$A:$D, MATCH($A2,Source!$A:$A,0), COLUMN()), 0)
主包和附加项:使用 Ctrl + Shift + Enter 在主包下输入以下公式。向右拖动以填充额外的列,然后向下拖动以填充。 =IFERROR(INDEX(Source!$A:$D, AGGREGATE(15,4, IF(Source!$A:$A=$A2, ROW(Source!$A:$A)-ROW(Source!$A)+1), COLUMN()-COLUMN($A)-2), COLUMN(Source!$D)), "")
请参阅示例工作簿 https://1drv.ms/x/s!AklQqQDqhBrtg2LdK1FGM6QX4WG8?e=3GfMMD