在Excel中水平折叠列
几天前,我在Tex.StackExchange中提出了这个问题,但尚未找到可行的解决方案——可能是因为我正在尝试自动化某些内容,而不是在LaTeX中手动编辑它。为了找到解决方案,我转而尝试在Excel中实现这一点 我在Excel中有以下结构:在Excel中水平折叠列,excel,excel-formula,Excel,Excel Formula,几天前,我在Tex.StackExchange中提出了这个问题,但尚未找到可行的解决方案——可能是因为我正在尝试自动化某些内容,而不是在LaTeX中手动编辑它。为了找到解决方案,我转而尝试在Excel中实现这一点 我在Excel中有以下结构: | Type | Category | Subcategory | Name | Code | Variable | Note | |------|----------|-------------|------|------|----------
| Type | Category | Subcategory | Name | Code | Variable | Note |
|------|----------|-------------|------|------|----------|-----------|
| A | | | | | | |
| | A | | | | | |
| | | A | | | | |
| | | | OneA | one | one | Something |
| | | | OneB | One | One | Something |
| | | | OneC | One | One | Something |
| B | | | | | | |
| | A | | | | | |
| | | A | | | | |
| | | | OneA | One | One | Something |
| | | | OneB | One | One | Something |
| | B | | | | | |
| | | A | | | | |
| | | | OneA | One | One | Something |
| | | | OneB | One | One | Something |
和在一个新的列中,放置在名称和代码之间——让我们称之为组合——我希望所有列的内容向左折叠成这个组合列,但<强> >第一个匹配的左边的空白单元格由字符串“\LVL”替换(对于每个,最后一个后面跟着一个空格)。 因此,预期输出如下所示:
| Type | Category | Subcategory | Name | Combined | Code | Variable | Note |
|------|----------|-------------|------|-------------------|------|----------|-----------|
| A | | | | A | | | |
| | A | | | \lvl A | | | |
| | | A | | \lvl\lvl A | | | |
| | | | OneA | \lvl\lvl\lvl OneA | one | one | Something |
| | | | OneB | \lvl\lvl\lvl OneB | One | One | Something |
| | | | OneC | \lvl\lvl\lvl OneC | One | One | Something |
| B | | | | B | | | |
| | A | | | \lvl A | | | |
| | | A | | \lvl\lvl A | | | |
| | | | OneA | \lvl\lvl\lvl OneA | One | One | Something |
| | | | OneB | \lvl\lvl\lvl OneA | One | One | Something |
| | B | | | \lvl B | | | |
| | | A | | \lvl\lvl A | | | |
| | | | OneA | \lvl\lvl\lvl OneA | One | One | Something |
| | | | OneB | \lvl\lvl\lvl OneB | One | One | Something |
这样做的目的是更容易地将一长串分层信息放入LaTeX中的表中,其中“\lvl”被给定数量的空格替换
在Excel中,我尝试了concatenate()
和isblank()
的变体,目前最接近的解决方案是:
=IF(ISBLANK(A2),"\lvl",A2) & IF(ISBLANK(B2),"\lvl",B2) & IF(ISBLANK(C2),"\lvl",C2) & IF(ISBLANK(D2),"\lvl",D2)
我在合并列中填写了它,但这将用“\lvl”替换所有空白单元格,而我只需要填充到第一个非空白单元格的左侧,因此我得到了上面所示的预期输出。我非常希望不依赖宏来实现这一点
是否有人建议我如何在Excel中通过在组合列中使用通用公式/函数来实现这一点?使用,并提供近似的number\u times参数。一个/功能对,可以完成它
在E2 as中
=TRIM(REPT("\lvl", MATCH("zzz", A2:D2)-1)&CHAR(32)&INDEX(A2:D2, MATCH("zzz", A2:D2)))
根据需要填写
这绝对是一流的,正是我想要的!