作者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/cn.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