作者hmsboy (一 身 是 宅)
看板Office
標題[問題] 一條算式要改造
時間Mon Oct 12 14:45:01 2020
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:Execl
版本:2019
有一條算式 需要改良
=IF(A10="","",IF(TYPE(SEARCHB($L$1,E10,1))=16,0,SEARCHB($L$1,E10,1)))
其中指向原本 $L$1 符合就行
但是如果要增加一個 $M$1
符合$L$1 也可以 符合$M$1
白話來說例如 原本抓出"公斤"這個單位會計算 如果是"臺斤""公升"之類以外不會算
現在要抓 "公斤" "公升" 都可以
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.163.154 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1602485104.A.1F0.html
1F:→ soyoso: 配合函數or 10/12 14:49
2F:→ soyoso: 或是函數and(內文公式這二個type都為錯誤值) 10/12 14:56
3F:→ soyoso: 如果實際要回傳的也是searchb(..)的值的話,抓二個,就配 10/12 15:08
4F:→ soyoso: 合iferror 10/12 15:08
5F:→ soyoso: 以iferror的話前面的if(type(..)方面也可調整不使用 10/12 15:08
6F:→ soyoso: sum配合iferror來將searchb錯誤值回傳0,再加總的陣列公式 10/12 15:08
7F:→ soyoso: 也可以 10/12 15:08
我表達得不好
重問一次好了
SEARCH函數
會在某個文字字串內找到另一個文字字串
並傳回該文字字串在第一個文字字串中的起始位置
=SEARCH("斤","100斤")
此函數會傳回4
========================
但是我匯入的隨機資料
會有50斤 135升 77盒
而我需要抓 "斤"跟"升" 得到"3"or"4"這些值
請問式子該怎麼寫 我在猜用 or and 還是其他寫法
=SEARCH("斤" or "升","100斤") <--應該是錯的
※ 編輯: hmsboy (111.254.163.154 臺灣), 10/12/2020 16:34:45
8F:→ soyoso: and(條件1,條件2),條件是什麼type(..)=16 10/12 17:07
9F:→ soyoso: 就search搜尋這二個的回傳的值的話,可不用再判斷type是否 10/12 17:14
10F:→ soyoso: 為錯誤值了,iferror(search("斤",...),iferror(search(" 10/12 17:14
11F:→ soyoso: 升",...),0)),判斷a10是否為空字串再自行加入 10/12 17:14
抱歉 還是弄不懂式子怎麼寫
原本
=IF(A10="","",IF(TYPE(SEARCHB($L$1,E10,1))=16,0,SEARCHB($L$1,E10,1)))
只有 $L$1 如果 $M$1 也要寫進去 該怎麼寫
※ 編輯: hmsboy (220.142.59.114 臺灣), 10/13/2020 10:45:16
12F:→ soyoso: 要以內文公式,加入and的話,...if(and(條件1,條件2),0, 10/13 11:05
13F:→ soyoso: iferror(searchb($L$1,..),searchb($m$1,..))).. 10/13 11:05
14F:→ soyoso: 條件是什麼回有寫了,自行調整 10/13 11:05
15F:→ soyoso: ...if(type(..),0,searchb(..))整個改為回文10/12 17:14所 10/13 11:05
16F:→ soyoso: 寫的二個iferror(searchb(..),iferror(searchb(...),0))也 10/13 11:05
17F:→ soyoso: 可以 10/13 11:05
18F:→ soyoso: 或是回文10/12 15:08所寫的sum配合iferror將searchb錯誤值 10/13 11:05
19F:→ soyoso: 回傳0,再加總也可以 10/13 11:05
=IF(A6="","",IF(AND(TYPE(SEARCHB($L$1,E6,1))=16,TYPE(SEARCHB($M$1,E6,1))=16),
0,IFERROR(SEARCHB($L$1,E6,1),SEARCHB($M$1,E6,1))))
是這樣嗎?
值跑出來了 你的意思是這樣嗎
或是說可以更精簡?
考慮到以後會增加 $N$1 $O$1 $P$1 ....
※ 編輯: hmsboy (220.142.59.114 臺灣), 10/13/2020 11:38:11
20F:→ soyoso: 值有回傳且正確,那公式是就這樣 10/13 11:48
21F:→ soyoso: 有其他寫法我都於回文告知了,那個是原po覺得精簡的就自行 10/13 11:48
22F:→ soyoso: 決定 10/13 11:48
23F:→ soyoso: 有要增加就用10/12 15:08所寫到的陣列公式,searchb搜尋上 10/13 11:48
24F:→ soyoso: 就以範圍L1:P1(這是指範圍內有值,有可能沒有值的話,要加 10/13 11:48
25F:→ soyoso: 上L1:P1<>""的判斷) 10/13 11:48
謝謝 我再研究看看
※ 編輯: hmsboy (220.142.59.114 臺灣), 10/13/2020 11:54:26