iT邦幫忙

0

excel利用利用TRANSPOSE從字串轉為欄

2021-03-27 22:56:473343 瀏覽
  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20210327/20132491WqTzLQXHcx.png
請問TRANSPOSE函數要怎讓A1的數值變為C那樣,還是有其他公式可以寫出來?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
微笑
iT邦研究生 5 級 ‧ 2021-03-28 16:33:00
最佳解答

有這問題是因為上一個問題使用我的解法遇到困難嗎..

A1的值屬於單一欄位,欄位內的值屬於字串而不是陣列

1
(附上上次回答的截圖)

當時我的答案中使用的是split(E2,",")
意思是將E2的字串,每存在一個,就切割出一個字串,最後組成陣列

最外圍會包transpose只是因為split會帶出橫的值
但樓主當時的解答需要直的結果比較好處理而已xDD

也就是說,這邊transpose之所以可以起作用是因為,split產出的結果是陣列
而不是因為E2欄的value是陣列喔

看更多先前的回應...收起先前的回應...
iT邦新手 5 級 ‧ 2021-03-28 18:54:36 檢舉

恩恩 因為我把它變成一格之後,excel沒有辦法把它變成列
split好像要用VBA,我直接用excel沒辦法做qq

微笑 iT邦研究生 5 級 ‧ 2021-03-28 19:39:29 檢舉

喔我知道了,是excel沒有split嗎
你看能不能先用googleSheet,然後下載下來

我明天看一下excel怎麼實現/images/emoticon/emoticon56.gif

iT邦新手 5 級 ‧ 2021-03-28 20:00:31 檢舉

恩恩 我試試看 謝謝

微笑 iT邦研究生 5 級 ‧ 2021-03-29 13:57:04 檢舉

EXCEL沒有split與join
join有textjoin可以替換,但split就沒辦法了..
如果不透過VBA的話,原本的處理要略過陣列處理(不然就要使用VBA)
因此,我們原本處理重複值的判斷,都要在同一行上

我把寫法放在上次的DEMO,看Data整理2

因為在同一行,避免以後喪失擴充性,這邊以每21列為一個換行標準
1~20列的函數為 =IF(Data!$A2="","",Data!$A2)

21~40 =IF(COUNTIF($A$1:$A20,Data!$C2)>0,"",Data!$C2)
依此類推

B行去除空白
=IFERROR(OFFSET($A$1,SUMPRODUCT(SMALL(($A$2:$A$100<>"")*ROW($A$2:$A$100), ROW(1:1)+COUNTIF($A$2:$A$100,"")))-1,0),"")

一路下拉100行,可以得到跟上次一樣的結果

如果要用VBA的話,會建議連上一步,將重複值改為空白的行為也取消
只要選定陣列範圍VBA就會處理會更好

微笑 iT邦研究生 5 級 ‧ 2021-03-29 14:16:27 檢舉

或是使用googleSheet就可以做到教學中的行為了

iT邦新手 5 級 ‧ 2021-03-29 18:33:19 檢舉

跑出來了耶 太感謝你了/images/emoticon/emoticon41.gif

1
小魚
iT邦大師 1 級 ‧ 2021-03-27 23:06:07

看起來像資料剖析,
但是為什麼好像少了幾個數字?

看更多先前的回應...收起先前的回應...
iT邦新手 5 級 ‧ 2021-03-27 23:13:32 檢舉

可能是我拉的時候沒拉好
只是我不知道怎麼把","分開 變成一列

小魚 iT邦大師 1 級 ‧ 2021-03-27 23:56:25 檢舉

你那功能應該是資料剖析,
如果是要手動做可以直接用,
如果要用VBA之類的就要再查看看了.

iT邦新手 5 級 ‧ 2021-03-28 10:53:51 檢舉

https://ithelp.ithome.com.tw/upload/images/20210328/20132491H1llw3aYK4.png
請問如果是這樣的話有辦法忽略空白,直接合併成一條x軸嗎

小魚 iT邦大師 1 級 ‧ 2021-03-28 11:21:35 檢舉

太複雜的可能要用VBA,
現在很多用Excel的都會學VBA.

ccenjor iT邦大師 9 級 ‧ 2021-03-28 18:34:04 檢舉

=IFERROR(SUMPRODUCT(LARGE(($A$2:$F$6)*1,COUNTA($A$2:$F$6)-ROW()+2)),"")
按CTRL+SHIFT+ENTER鍵完成陣列公式輸入。
https://ithelp.ithome.com.tw/upload/images/20210328/20109881n2PG6QrUDs.png

iT邦新手 5 級 ‧ 2021-03-28 19:12:24 檢舉

https://ithelp.ithome.com.tw/upload/images/20210328/2013249110pQDwRUaF.png
我這裡打同樣的公式進去還是跑不出來

ccenjor iT邦大師 9 級 ‧ 2021-03-29 19:22:18 檢舉

你沒有按CTRL+SHIFT+ENTER鍵。

iT邦新手 5 級 ‧ 2021-03-29 22:30:06 檢舉

https://ithelp.ithome.com.tw/upload/images/20210329/2013249171Ytq6ZC0B.png
按了 但跑不出來

1
rogeryao
iT邦超人 7 級 ‧ 2021-03-28 09:49:53

https://ithelp.ithome.com.tw/upload/images/20210328/20085021f3U2p7tOGs.png
https://ithelp.ithome.com.tw/upload/images/20210328/20085021qNSurEtHIU.png
https://ithelp.ithome.com.tw/upload/images/20210328/20085021WtTvWXFBen.png
https://ithelp.ithome.com.tw/upload/images/20210328/200850211EX5vYALFv.png
https://ithelp.ithome.com.tw/upload/images/20210328/200850212gf0AaGhKO.png
https://ithelp.ithome.com.tw/upload/images/20210328/20085021rqlssy8xLE.png

iT邦新手 5 級 ‧ 2021-03-28 10:55:57 檢舉

有試過了,但因為有時分析大量,需要一個公式會比較快,只是我公式寫不出來QQ

我要發表回答

立即登入回答