前幾天在Tex.StackExchange中問了這個問題(Collapse table columns to vertical hierarchy),但還沒有找到一個可行的解決方案 - 可能是因爲我試圖自動化一些東西,而不是在LaTeX中手動編輯它。爲了找到解決方案,我轉而試圖在Excel中實現這一點。在Excel中水平摺疊列表
我有以下的結構在Excel中:
| 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 |
的目的是爲了更容易適應的分層信息一長串到膠乳中的表,其中「\拉特」是由給定數量的替代的空間。
在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中實現這一點,通過使用組合列中的通用公式/函數?
這絕對是一流的,正是我一直在尋找的! – OleVik