![以某種方式將單元格中的字串轉換為行和列範圍的數組?](https://rvso.com/image/1618371/%E4%BB%A5%E6%9F%90%E7%A8%AE%E6%96%B9%E5%BC%8F%E5%B0%87%E5%96%AE%E5%85%83%E6%A0%BC%E4%B8%AD%E7%9A%84%E5%AD%97%E4%B8%B2%E8%BD%89%E6%8F%9B%E7%82%BA%E8%A1%8C%E5%92%8C%E5%88%97%E7%AF%84%E5%9C%8D%E7%9A%84%E6%95%B8%E7%B5%84%EF%BC%9F.png)
答案1
如果您想要文字字串,請使用:
="={"""&TEXTJOIN(""",""",,SUBSTITUTE($A$2:$A$5," ","""/""")) & """}"
如果您想要一個將在其他地方使用的實際數組,請使用:
IFERROR(FILTERXML("<a><b>"&SUBSTITUTE(TRANSPOSE($A$2:$A$5)," ","</b><b>")&"</b></a>","//b["&ROW($A$1:$A$4)&"]"),"")
這將建立一個可用於其他公式的 4x4 陣列。根據版本的不同,在另一個公式中使用此公式需要在退出編輯模式時使用 Ctrl-Shift-Enter 而不是 Enter 來強制使用陣列公式。
我不知道有什麼方法可以做你想做的事情F9
並在公式欄中顯示陣列。
答案2
好吧,文字字串,減去我不會複製的拼寫錯誤“JONH”,可以通過稍微調整一下 Scott Craner 的公式來獲得(我使用的SEQUENCE()
不是ROWS()
技巧,而是使用新函數來習慣)他們,呃? ),然後用作一些字串工作的基礎:
="={"""&TEXTJOIN("""\""",,INDEX(TRANSPOSE(B234:B237),SEQUENCE(4)))&""","""&TEXTJOIN("""\""",,INDEX(TRANSPOSE(C234:C237),SEQUENCE(4)))&""","""&TEXTJOIN("""\""",,INDEX(TRANSPOSE(D234:D237),SEQUENCE(4)))&""","""&TEXTJOIN("""\""",,INDEX(TRANSPOSE(E234:E237),SEQUENCE(4)))&"""}"
請記住,雖然它給出了所需的字面輸出,但輸出是不是從 Excel 的角度來看,它是一個陣列常數,並且不會像結果那樣被它精確地使用F9
。
它只是 Excel 所關心的一些文字字串。因此,在公式中使用它可能會導致失敗,或純粹偶然的成功。也許對於某些用途來說它也能正常運作。但它與 Excel 完全不同或等效,因為內部使用陣列常數突出顯示某些內容並點擊F9
建立。
也就是說,它又醜又臃腫。我猜我不會在評論中來回跟踪該線程,所以我不明白為什麼 Scott Craner 使用TRANSPOSE()
這迫使我這樣做,因為似乎所需的輸出是左右的(上面的評論為“A234 =” Jonh”,.. .)所以把它拿出來,然後將他的A2:A5 調整為A1:A4 (或為我的實驗刪除一行),我得到:
=IFERROR(FILTERXML("<a><b>"&SUBSTITUTE(($A$234:$A$237)," ","</b><b>")&"</b></a>","//b["&SEQUENCE(1,4)&"]"),"")
對於他的公式並重新設計我的公式,然後將他的公式混合以使用單個公式,我得到:
="={"""&TEXTJOIN("""\""",,B234:E234)&""","""&TEXTJOIN("""\""",,B235:E235)&""", """&TEXTJOIN("""\""",,B236:E236)&""","""&TEXTJOIN("""\""",,B237:E237)&"""}"
順便說一句,由於它是有圖案的,在構造上是重複的,因此可以使用舊的CONCATENATE()
或union operator
現在的技巧來構建它,在最終連接之前很好地調整行和列,粘貼特殊值作為值,然後放置一個“=”在它之前使它成為一個公式。現在更容易了。對於不在四行以內且元素少於五個的資料。
F9
那麼,這給出了表達的所需結果字串,儘管同樣,它並不是 Excel 看到的結果與您在使用上述內容後看到的數組常數相同。
然後,修改後的斯科特·克蘭納公式將給出評論中描述的單一單元格結果。它本身可以在公式中使用,讓 Excel 建立該內部陣列常數。但我認為,不是透過使用字串公式(這在計算上是一個死胡同),而是透過使用字串公式so Excel will evaluate it to the desired
在陣列常數中所需的任何公式中使用 Scott Craner 的(調整後的)公式,然後,不要填充這 16 個單元格,而是將其傳遞到該公式內的計算鏈。
剛剛意識到這是南方公園裡的“斯科特·泰諾曼”(或接近的),卡特曼……報復的那個……我不再因為一遍又一遍地說“斯科特·克雷納「而感到隱隱約約的煩惱!