Excel 问题,以特定方式组合列
Excel Problem, combining columns in a specific way
我有一个材料列表,由 2 个单独列中列出的子组件组成。
- 一栏由材料 A、B 和 C 组成。
- 另一列显示了每种成分的子成分。
- A 由子成分
1-6
组成。 B由7-13
组成。 C 由 14-21
组成(ingredients/sub-ingredients 的数量无关紧要,因为这可能会有所不同)。
重要的是,包含相关数据的两列彼此不相邻(见附图)。
是否可以有一个新列,以便数据自动组合相关列以读取: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...
所附图片显示了我试图从 material 列和子组件列获得的所需输出,同时省略了其他信息。
如果有任何进一步的想法,我们将不胜感激。谢谢。
使用 Excel 365 和 A 和 B 列中的数据,在 C1 中输入:
=FILTERXML("<a><b>"&SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16),",","</b><b>")&"</b></a>","//b")
编辑#1:
如果我们想要包含列 A 和 E 中的数据,但排除列 B ]、C和D,然后替换:
SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16)
类似:
TEXTJOIN(",",TRUE,A:A,E:E)
编辑#2:
这是正确的等式:
=LET(x,INDEX(A:E,ROUNDUP(SEQUENCE(42)/2,0),IF(MOD(SEQUENCE(42),2)=0,5,1)),FILTER(x,x<>""))
我有一个材料列表,由 2 个单独列中列出的子组件组成。
- 一栏由材料 A、B 和 C 组成。
- 另一列显示了每种成分的子成分。
- A 由子成分
1-6
组成。 B由7-13
组成。 C 由14-21
组成(ingredients/sub-ingredients 的数量无关紧要,因为这可能会有所不同)。
重要的是,包含相关数据的两列彼此不相邻(见附图)。
是否可以有一个新列,以便数据自动组合相关列以读取: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...
所附图片显示了我试图从 material 列和子组件列获得的所需输出,同时省略了其他信息。
如果有任何进一步的想法,我们将不胜感激。谢谢。
使用 Excel 365 和 A 和 B 列中的数据,在 C1 中输入:
=FILTERXML("<a><b>"&SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16),",","</b><b>")&"</b></a>","//b")
编辑#1:
如果我们想要包含列 A 和 E 中的数据,但排除列 B ]、C和D,然后替换:
SUBSTITUTE(TEXTJOIN(",",TRUE,A1:B16)
类似:
TEXTJOIN(",",TRUE,A:A,E:E)
编辑#2:
这是正确的等式:
=LET(x,INDEX(A:E,ROUNDUP(SEQUENCE(42)/2,0),IF(MOD(SEQUENCE(42),2)=0,5,1)),FILTER(x,x<>""))