iT邦幫忙

0

[請教]不規則字數擷取

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20230419/201596542n7fA3JhwA.jpg

請問針對以上不規則字數要如何分別擷取字串?
對照底下黃色部份擷取上面粗黑體底線的文字、數字

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
BeEvil_Y
iT邦新手 4 級 ‧ 2023-04-20 09:44:54
最佳解答

答案(可下載):https://docs.google.com/spreadsheets/d/1ZCFrROw0xxFA7iL6t7L-JMCFcyKKwdXH/edit?usp=share_link&ouid=100764114856525418374&rtpof=true&sd=true

原理(電子邏輯):
1、判斷是否有"癌症"  ,有:2,無:X
2、判斷是否有"骨折"  ,有:Y,無:3
3、判斷是否有"手術開刀",有:Y,無:4
4、判斷是否有"慢性病" ,有:Y,無:A
Y、用mid、Find函數抓字串
A、用mid抓字串

西西 iT邦新手 5 級 ‧ 2023-04-20 11:21:03 檢舉

再請問一下,如果我要擷取吸菸、檳榔的每天吸幾支,已吸菸幾年和已經戒菸,戒了幾年幾月。該怎麼改變函數呢?
https://ithelp.ithome.com.tw/upload/images/20230420/20159654vQsbWprzLg.jpg

BeEvil_Y iT邦新手 4 級 ‧ 2023-04-20 11:39:31 檢舉

呵呵,我寫的函數太難,你放棄學習了吧?
我用到的函數只有四個,其實沒有很難。
if(判斷,是,否)
iferror(判斷,否)
mid(目標,第幾格,取幾格)
find(字串,目標,1)

一整串拼起來,就這樣而已?
用看的你當然覺得很複雜
https://ithelp.ithome.com.tw/upload/images/20230420/20103120c6j3Kpr136.png

這跟學習如何做人一樣
當你去看問題的時候,是很複雜的無解。
但當你不看的時候,手上只拿拼圖的時候,那就不一樣了。

所以要「解決」問題。
不能只是看或提,要拿拼圖,然後去拼它。
這個是佛法上都有講的,四大皆空。
旁觀者清,當局者迷啊。

西西 iT邦新手 5 級 ‧ 2023-04-21 15:31:23 檢舉

函數是真的挺困難的,邏輯要很好,不然想破頭都不知要怎麼弄,還好最後我稍稍理解要怎麼寫了,感謝

1
ktchen
iT邦見習生 ‧ 2023-04-19 16:37:06

Bing GPT教我用 =MID()

嘗試如下

https://ithelp.ithome.com.tw/upload/images/20230419/20159672i16TZQGeLO.png

西西 iT邦新手 5 級 ‧ 2023-04-19 17:11:50 檢舉

請問三個都是用那公式嗎?為何我照你的公式去做,只出現#NAME?
https://ithelp.ithome.com.tw/upload/images/20230419/201596544WkcWmEd2e.jpg

shiaobin iT邦新手 4 級 ‧ 2023-04-19 17:44:49 檢舉

你把 FIND 打成 Fine 了?

西西 iT邦新手 5 級 ‧ 2023-04-20 08:53:53 檢舉

原來我前面打錯了,怪不得跑不出來,重試後可以了。
再請教一下,我問題裡的A欄和C欄也可以用此公式嗎?

1
ccenjor
iT邦大師 9 級 ‧ 2023-04-19 18:44:06

這題只有B欄有原則。
B1:
=MID(A1,FIND("每週喝",A1,1)+3,FIND("次,",A1,1)-FIND("每週喝",A1,1)-2)
向下複製B2:B4
C1:
=MID(A1,FIND("最常喝",A1,1)+3,FIND(",每",A1,1)-FIND("最常喝",A1,1)-3)
向下複製C2:C4
D1:
=MID(A1,FIND("每次",A1,1)+2,LEN(A1)-FIND("每次",A1,1))
向下複製D2:D4
https://ithelp.ithome.com.tw/upload/images/20230420/20109881y1E2e9Bu7F.jpg

看更多先前的回應...收起先前的回應...
西西 iT邦新手 5 級 ‧ 2023-04-20 08:56:25 檢舉

您好,我要擷取的是裡面的數字(幾次、幾瓶)和喝的是什麼酒類,因為要套表用,所以裡面的文字(每週喝次、最常喝、每次瓶)不要顯示出來

ccenjor iT邦大師 9 級 ‧ 2023-04-20 18:25:29 檢舉

C2:
=MID(A2,FIND("平均每天吸",A2,1)+5,FIND("支,",A2,1)-FIND("平均每天吸",A2,1)-4)
D2:
=MID(A2,FIND("己吸煙",A2,1)+3,FIND("年",A2,1)-FIND("己吸煙",A2,1)-2)
E2:
=MID(B2,FIND("平均每天嚼",B2,1)+5,FIND("顆,",B2,1)-FIND("平均每天嚼",B2,1)-4)
F2:
=MID(B2,FIND("己嚼",B2,1)+2,FIND("年",B2,1)-FIND("己嚼",B2,1)-1)
https://ithelp.ithome.com.tw/upload/images/20230420/20109881LJ6VdNTIKR.jpg

BeEvil_Y iT邦新手 4 級 ‧ 2023-04-21 14:47:52 檢舉

我們的回答夠了吧?
別幫他了吧,一般私人診所(或保險業務員,里長),會用這些資料,通常是寫計劃,向政府請錢用的。而這報告與文件,平均半年~一年一次。因此了不起人數預估為100~300人。
也就是量不大的關係,所以在製作表單或問卷的時候便宜行事。
也就是因為便宜行事的原因,才會在這裡問這些問題。

我第一次回答的時候,就已經知道會問第二次了。
事實上,每半年~一年一次,數量才100~300。

已經用不到函數了,自已用手一個一個抓出來,也沒浪費多少時間。
數量算300個好了,複製貼上算5秒,一個人貼個10次。
一個人也才花你1分鐘,300個人也才花你300分鐘。

就是一個坐在位子上,花個5~8小時(複製貼上)就可以做完的工作。
而且這一次做完,下一次又變了。
因為「政府」計劃每年都在改,沒有一樣。
我們的回答也因此作癈了,連用個10年都做不到。

我們寫函式的目地,就是「長時間」使用,節省時間、提升效率。
但我現在看起來,並不是這個樣子。

這次根本就是函式用完,就丟了,下次再來問。

西西 iT邦新手 5 級 ‧ 2023-04-21 15:43:20 檢舉

呃...上面的大哥你也別這樣嘛,我就是有問題才會請教,而且我也說過我是要套表用的。這裡不就是讓有需要的人發問嗎?

再來我不是你所謂的一般私人診所,我公司一年做的量不是你所謂的100-300人,是數十萬人

「政府」計劃每年都在改,但勞工的問卷,是職安署規定的,會變動但是變動不大,所以你們的回答對我來說並不會作廢

會來詢問公式要怎麼寫,當然是為了節省時間、提升效率,請問哪方面讓您看起來我並不是為了讓自已節省時間、提升效率?

你放心,我不是函式用完就丟,至少我還會應用在別的地方,除非我真的套不出來,才會再來詢問

我要發表回答

立即登入回答