将来自多行的数据合并到一个具有特定文本格式的“摘要”行中

时间:2016-07-05 23:54:33

标签: excel google-sheets

这篇文章与以下问题here非常相关;然而,我被鼓励再次提出要求并提供更多澄清,因为我发现我最初的问题的答案没有得到我真正需要的东西。

我的数据输入和结果集都可以用两种方式显示。我将显示每个选项的屏幕截图。

首先,我的数据输入数据集可以输入如下:

Data Entry Set 1

接下来,也可以这样输入:

Data Entry Set 2

请注意,SKU模式最终基于SKU前缀,颜色缩写,大小和结束的第一个字母的串联。

根据此数据,将每个SKU前缀转换为遵循特定模式的“摘要”行。请考虑此结果集的以下两个选项:

Result Set 1

Result Set 2

这里有几点关于我的需求,原帖不解决:首先,如果它是相关的,结果表中的这个SKU模式是使用驻留在数据输入表中的数据和其他情况下的其他数据组装的,尽管所有这些值都是从同一工作簿中的命名范围中提取的。其次,此处的“类型”列确定行是否为摘要行。 (“类型”值为“可配置”的行)。其次,请注意摘要行的位置不会链接到非摘要行的位置。

原始帖子的解决方案是FILTERs的优雅组合,它实现了目标,除了它与摘要行及其相关数据行的位置相关联的事实。我仍然希望这可以使用公式来解决,并且不需要GAS,因为我非常喜欢它,而且我目前尝试开始它最好是可笑的。

最后,为了尽可能彻底,我在这里创建了一个示例表,显示了输入和结果的方法:Example Sheet

感谢您的时间 - 所有答案和指导都非常感谢。

1 个答案:

答案 0 :(得分:1)

这是你在找什么? 请注意,您将在数据表上进行测试。您的结果表最终会使其超出公式的字符数限制。你可以通过采用公共范围并使它们命名范围像A B D(C是保留的)来解决这个问题。您可以将其向下拖动而不是将其用作数组。我也从|更改了分隔符to char(10)所以在使用它时会更容易阅读。在确认它是您需要的之后将其更改回来。

好的,基于这个来回的长期,这应该为你做。

助手专栏:
    = if(B10 =“Simple”,A10& C10&“ - ”& D10&“ - ”& left(E10,1),join(char(10),arrayformula(“sku =”& filter(A) $ 2:A,左(A $ 2:A,6)=左(A10,6))& filter(C $ 2:C,左(A $ 2:A,6)=左(A10,6))&“ - “& filter(D $ 2:D,左(A $ 2:A,6)=左(A10,6))&” - “& left(过滤器(E $ 2:E,左(A $ 2:A) ,6)=左(A10,6)),1)&“,color =”& filter(C $ 2:C,左(A $ 2:A,6)=左(A10,6))&“ ,size =“& filter(D $ 2:D,左(A $ 2:A,6)=左(A10,6))&”,finish =“& filter(E $ 2:E,左(A $ 2) :A,6)=左(A10,6)))))

结果列(假设辅助列为F ...如果不是,则更改它:
    = iferror(左(F2,FIND(“| \ |”,SUBSTITUTE(F2,“|”,“| \ |”,LEN(F2)-LEN(SUBSTITUTE(F2,“|”,“”)))) -1),F2)