[問題] 一條算式要改造

看板Office作者 (一 身 是 宅)時間5年前 (2020/10/12 14:45), 5年前編輯推噓0(0025)
留言25則, 1人參與, 5年前最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體: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://www.ptt.cc/bbs/Office/M.1602485104.A.1F0.html

10/12 14:49, 5年前 , 1F
配合函數or
10/12 14:49, 1F

10/12 14:56, 5年前 , 2F
或是函數and(內文公式這二個type都為錯誤值)
10/12 14:56, 2F

10/12 15:08, 5年前 , 3F
如果實際要回傳的也是searchb(..)的值的話,抓二個,就配
10/12 15:08, 3F

10/12 15:08, 5年前 , 4F
合iferror
10/12 15:08, 4F

10/12 15:08, 5年前 , 5F
以iferror的話前面的if(type(..)方面也可調整不使用
10/12 15:08, 5F

10/12 15:08, 5年前 , 6F
sum配合iferror來將searchb錯誤值回傳0,再加總的陣列公式
10/12 15:08, 6F

10/12 15:08, 5年前 , 7F
也可以
10/12 15:08, 7F
我表達得不好 重問一次好了 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

10/12 17:07, 5年前 , 8F
and(條件1,條件2),條件是什麼type(..)=16
10/12 17:07, 8F

10/12 17:14, 5年前 , 9F
就search搜尋這二個的回傳的值的話,可不用再判斷type是否
10/12 17:14, 9F

10/12 17:14, 5年前 , 10F
為錯誤值了,iferror(search("斤",...),iferror(search("
10/12 17:14, 10F

10/12 17:14, 5年前 , 11F
升",...),0)),判斷a10是否為空字串再自行加入
10/12 17:14, 11F
抱歉 還是弄不懂式子怎麼寫 原本 =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

10/13 11:05, 5年前 , 12F
要以內文公式,加入and的話,...if(and(條件1,條件2),0,
10/13 11:05, 12F

10/13 11:05, 5年前 , 13F
iferror(searchb($L$1,..),searchb($m$1,..)))..
10/13 11:05, 13F

10/13 11:05, 5年前 , 14F
條件是什麼回有寫了,自行調整
10/13 11:05, 14F

10/13 11:05, 5年前 , 15F
...if(type(..),0,searchb(..))整個改為回文10/12 17:14所
10/13 11:05, 15F

10/13 11:05, 5年前 , 16F
寫的二個iferror(searchb(..),iferror(searchb(...),0))也
10/13 11:05, 16F

10/13 11:05, 5年前 , 17F
可以
10/13 11:05, 17F

10/13 11:05, 5年前 , 18F
或是回文10/12 15:08所寫的sum配合iferror將searchb錯誤值
10/13 11:05, 18F

10/13 11:05, 5年前 , 19F
回傳0,再加總也可以
10/13 11:05, 19F
=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

10/13 11:48, 5年前 , 20F
值有回傳且正確,那公式是就這樣
10/13 11:48, 20F

10/13 11:48, 5年前 , 21F
有其他寫法我都於回文告知了,那個是原po覺得精簡的就自行
10/13 11:48, 21F

10/13 11:48, 5年前 , 22F
決定
10/13 11:48, 22F

10/13 11:48, 5年前 , 23F
有要增加就用10/12 15:08所寫到的陣列公式,searchb搜尋上
10/13 11:48, 23F

10/13 11:48, 5年前 , 24F
就以範圍L1:P1(這是指範圍內有值,有可能沒有值的話,要加
10/13 11:48, 24F

10/13 11:48, 5年前 , 25F
上L1:P1<>""的判斷)
10/13 11:48, 25F
謝謝 我再研究看看 ※ 編輯: hmsboy (220.142.59.114 臺灣), 10/13/2020 11:54:26
文章代碼(AID): #1VW_jm7m (Office)
文章代碼(AID): #1VW_jm7m (Office)