如何判斷特定文字儲存格,匯出對應"多個"儲存格?

請問,如何判斷特定文字儲存格,匯出對應"多個"儲存格?
而且會員欄沒有空白儲存格(每個儲存格皆為有效值)
並且內容對應前欄會員名稱(如圖中預期的結果)

PS.匯出結果無法使用搜尋特殊目標尋找空格...

PS.每次的資料來源內容皆不相同
這是否能製作成VBA呢?


如何判斷特定文字儲存格,匯出對應"多個"儲存格?
內容

EXCEL檔案下載
spirit776 wrote:
PS.匯出結果無法使用搜尋特殊目標尋找空格...

呃,您這句話的意思是?

spirit776 wrote:
PS.每次的資料來源內容皆不相同
這是否能製作成VBA呢?

資料來源是放在A欄吧?.......那就要看看您所謂的「不同」,是否毫無規律,或是仍保有相同規律。.........比如:要去除的,固定就是「 · 回覆 · 1週」,其他都是要保留的;每位成員的發言內容都是連續的。

如果規律是不會變的,那當然就可以製作成VBA,沒有問題啦。~~~不過,可能待會就會有大大直接提供您函數的做法囉~~
Der,misser1
spirit776 wrote:
請問,如何判斷特定文(恕刪)


我沒下載檔案,所以不知道你的 ".回覆." 用的 "." 是不是跟我用的一樣,不是的話請自改。



B2
=IFERROR(IF(ROW()=ROW($A$2),$A$2,INDEX($A$1:$A$23,SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1)-1)+1)),"")

如果用 B2=A2,那公式輸入在 B3,則第一個 IF 條件就可去掉並修改。

C2 (新版)
=IFERROR(TEXTJOIN(" ",,INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)),"")
(舊版)
=IFERROR(TRIM(CONCAT(INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)&" ")),"")

簽名很重要記得要看。
因版本不同,可能不能直接按 Enter,舊版的要按 Shift+Ctrl+Enter
misser wrote:
PS.匯出結果無法使用搜尋特殊目標尋找空格...


PS.匯出結果無法使用搜尋特殊目標尋找空格...
我本是想說如果「會員」那欄,抓出的資料會有空格(如圖中粉色框),
就用 搜尋→特殊目標→空白→刪除空白的儲存格。
但可惜此方法不能用。





B2固定是A2
B3以後的資料固定來源為A欄的每一個「 · 回覆 · 1週」方的第一個儲存格
C2之後的資料固定來源為A欄的每一個「 · 回覆 · 1週」方的第一個儲存格至「會員名稱」下的每一個儲存格
C2之後的資料如果是多行(格),要不換行在同一個儲存格
mk2-paul wrote:
B2
=IFERROR(IF(ROW()=ROW($A$2),$A$2,INDEX($A$1:$A$23,SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1)-1)+1)),"")

如果用 B2=A2,那公式輸入在 B3,則第一個 IF 條件就可去掉並修改。

C2 (新版)
=IFERROR(TEXTJOIN(" ",,INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)),"")
(舊版)
=IFERROR(TRIM(CONCAT(INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)&" ")),"")



B2
=IFERROR(IF(ROW()=ROW($A$2),$A$2,INDEX($A$1:$A$23,SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1)-1)+1)),"")

如果用 B2=A2,那公式輸入在 B3,則第一個 IF 條件就可去掉並修改。
此方法用shift+ctrl+enter可行,結果是預期中的,很謝謝你


C2 (新版)
=IFERROR(TEXTJOIN(" ",,INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)),"")
(舊版)
=IFERROR(TRIM(CONCAT(INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)&" ")),"")
此方法用shift+ctrl+enter或是enter,結果是全部空白,沒有顯示預期中的內容,還是謝謝你。

· 回覆 ·
spirit776 wrote:
結果是全部空白,沒有顯示預期中的內容


我懂了,TEXTJOIN 是新版 2019 的函數,而 CONCAT 原來也是 2019 的函數,我以為它是舊版的。

舊版的要用 CONCATENATE 不過它不能用於範圍,所以也不合用。



看樓主要不要改成這樣

C2
=IFERROR(INDEX(INDIRECT("A"&MATCH($B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1),COLUMN(A2)),"")

如果一定要串在一起的話,用 CONCATENATE 再把它們串起來,
不過如果一個會員回覆太多項的話,那又要修改加長,真的不合用了。
=TRIM(CONCATENATE(C2&" ",D2&" ",E2&" ",F2))

不然就要請 misser 大,出馬了。
因版本不同,可能不能直接按 Enter,舊版的要按 Shift+Ctrl+Enter
mk2-paul wrote:
不然就要請 misser 大,出馬了。

暈~~我怎麼中槍了?

其實昨天我有看到樓主的疑問,也確認我的Excel 2016是沒有那些函數,所以樓主發現的空白問題是確實存在的。

不過,我就想,mk大應該很快就會上來,提供函數修正方法......所以當然就繼續潛水囉。

~~若樓主希望從函數下手就好,那我還真適合潛水.....每次看到mk大、錦大.....等前輩搞的那一長串公式,就有點頭暈~~不知道你們這一長串的公式怎來的,頭腦和我們一般人到底不一樣在哪.........(如果是我,或許有可能做得到,但一定要死很多腦細胞,一直跑公式值評估分析.....)

不過話說回來,樓主這問題,要我的習慣,就是直上VBA了.......簡單解決,不用想公式到頭暈,哈

.....這個公式修改,我想還是cue一下其他大大好了(錦大?)~~

呃,如果樓主考慮要上VBA了,我再來試看看?(........搞這個我比較沒負擔,反正搞出來後,程式不夠完美、精簡的部分,後面還有一堆大神「盯著」,立馬就會跳出來幫忙補正,呵)
Der,misser1
mk2-paul wrote:
=IFERROR(TEXTJOIN(" ",,INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(".回覆.",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)),"")


會員留言行數無法掌控,有時會超過20行以上

我有使用2019嘗試
=IFERROR(TEXTJOIN(" ",,INDIRECT("A"&MATCH(B2,$A$1:$A$23,0)+1&":A"&SMALL(IF(IFERROR(SEARCH(" · 回覆 ·",$A$2:$A$23),0),ROW($A$2:$A$23)),ROW(A1))-1)),"")
會出現
「嘗試計算一或多個公式時 excel資源不足 因此無法評估這個公式」

misser wrote:
暈~~我怎麼中槍了?(恕刪)


我也很希望VBA能搞定
但我不知道我的預期結果是不是真的有隱藏方法能做到
還是只能靠手動才能做到

不管如何,還是很感謝有這麼多大大願意無私的分享
spirit776 wrote:
會員留言行數無法掌控(恕刪)


所以樓主有用 2019 版的,那用新版的公式就可以了。

輸完公式不用按 Shift+Ctrl+Enter (試了一下,那錯誤視窗是按Shift+Ctrl+Enter)
只要按 Enter 就好了

不過不知為什麼之前樓主回不行,我的版本是 365,難道又跟 2019版有微妙的不同,那我也沒辨法除錯了,因為我只有 365版。

就直上 VBA 吧。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!