返回列表 上一主題 發帖

利用Excel比對多筆有分隔符號資料的相同處

回復 4# p212


    p212;
             謝謝你解答,能用固然很好但我想了解公式的含意這樣才可以日新越新不斷進步所以我有下列問題
1、LEN(D2):計算D2儲存格原有字數-------
ask:為何要先算儲存格原有字數??D2儲存格是"U1"或"C2,C3,C4,C5"這可以算嗎??那為何要下列第2部"刪除D2儲存格中的逗號使字串為連續不
中斷"

2、SUBSTITUTE(D2,",",""):刪除D2儲存格中的逗號使字串為連續不中斷

ask:若不刪除存格中的逗號使字串為連續不中斷是否可直接執行下列第3步

3、LEN(SUBSTITUTE(D2,",","")):計算刪除D2儲存格中的逗號後連續字串的字數

ask:上列這些公式是固定的步驟嗎??還是可以像C語言一樣有語法或可簡化程式??

謝謝

TOP

本帖最後由 p212 於 2013-10-9 09:45 編輯

回復 11# parker
假設:指定儲存格D2內字串為「C2,C3,C4,C5」
分析:字串「C2,C3,C4,C5」所有字元個數為「11」,不含逗號之字元個數則為「8」,逗號個數為「3」。
1、欲計算字串內含所有字元個數,則選用文字類函數LEN(text),即 LEN(D2)=11
2、今欲計算出不含逗號之字元個數,則需藉用文字類函數SUBSTITUTE(text,old_text,new_text,instance_num)來排除逗號。
如在指定儲存格D2內字串「C2,C3,C4,C5」,old_text即是對應到「,」,new_text則用「""」以無間隔取代「,」,如此SUBSTITUTE(D2,",","")結果回應為「C2C3C4C5」。
3、對SUBSTITUTE(D2,",","")的結果再次套用LEN(text)函數,即LEN(SUBSTITUTE(D2,",",""))=LEN(C2C3C4C5)=8
4、故指定儲存格D2逗號個數=LEN(D2)-LEN(SUBSTITUTE(D2,",",""))=11-8=3
5、若今欲計算被逗號區隔開來的字串,則僅對「逗號個數」再加上「1」即可解決。(承上假設為C2、C3、C4與C5,字串個數為3+1=4。)

以上解說請參考!
ps.本人從未學過C語言,以上僅就邏輯思考而得。

TOP

回復 12# p212


    受教受教,了解了
謝謝

TOP

真是學到了 ~"~ 謝謝分享
ewdas

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題