【问题标题】:Excel Problem, combining columns in a specific wayExcel问题,以特定方式组合列
【发布时间】:2021-02-04 17:05:46
【问题描述】:

我有一个由 2 个单独列中列出的子组件组成的材料列表。

  • 一列由材料 A、B 和 C 组成。
  • 另一列显示每种成分的子成分。
  • A 由子成分1-6 组成。 B 由7-13 组成。而 C 由 14-21 组成(成分/子成分的数量无关紧要,因为这可能会有所不同)。

重要的是,包含相关数据的两列不相邻彼此(见附图)。

是否可以有一个新列,以便数据自动组合相关列以读取:A,1,2,3,4,5,6,B,7,8,9,10,11,12,13,C,14,15,16,17,18,19,20,21,同时省略其间的列。

在所附图片中,我显示了所需的输出,以便更好地直观地解释。

在@Gary 的学生的帮助下取得了迄今为止的进步

  • 通过使 A B 列彼此相邻,可以使用以下公式计算所需的输出(删除列标题): =FILTERXML(""&SUBSTITUTE(TEXTJOIN(",",TRUE,A:A:B:B),",","")&""," //b")

  • 问题是我正在处理的标准化 Excel 电子表格没有这些列并排,而是相关数据分别位于 A 列和 E 列中。

  • 尝试省略列 B:D 已使用: =FILTERXML(""&SUBSTITUTE(TEXTJOIN(",",TRUE,A:A,E:E) ,",","")&""," //b") 虽然这确实省略了不相关的信息,但不幸的是,这也会将所需的输出更改为A,B,C,1,2,3...

所附图像显示了我试图从材料列和子组件列实现的所需输出,同时省略了其他信息。

任何进一步的想法将不胜感激谢谢。

【问题讨论】:

  • 如果你能展示你到目前为止自己尝试过的东西,那将是最好的,例如一个单元格公式或 VBA 代码。
  • 嗨,抱歉,我对 excel 不太熟悉。我通过使用 IF 和 ISBLANK 语句尝试了这一点,但只能做到这一点。

标签: excel logic cell


【解决方案1】:

使用 Excel 365 和列 AB 中的数据,在 C1 中输入:

=FILTERXML("<a><b>"&SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16),",","</b><b>")&"</b></a>","//b")

编辑#1:

如果我们想要包含列 AE 中的数据,但排除列 BC,和 D,然后替换:

SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16)

类似:

TEXTJOIN(",",TRUE,A:A,E:E)    

编辑#2:

这是正确的公式:

=LET(x,INDEX(A$2:E$22,ROUNDUP(SEQUENCE(42)/2,0),IF(MOD(SEQUENCE(42),2)=0,5,1)),FILTER(x,x<>""))

【讨论】:

  • 再次嗨,虽然这确实很好,但我实际上创建了这个作为示例来简化我的问题。实际上,我的文档仅在 A 列和 E 列中包含所需的数据。我能否实现相同的预期效果,但不包括 B、C、D 列中的数据。谢谢。
  • @iNick1 让我考虑一下。
  • @iNick1 查看我的EDIT#1
  • 嘿加里。我之前曾尝试将公式修改为您所描述的: =FILTERXML(""&SUBSTITUTE(TEXTJOIN(",",TRUE,A:A,E:E),",","")&"","//b") 但是,这基本上将 2 个列表组合为:ABC1234567,而不是上面屏幕截图中显示的所需输出。跨度>
  • @iNick1 不要放弃!我会继续调查的。
猜你喜欢
  • 2020-01-13
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
相关资源
最近更新 更多