作者ejeanstone (存中街米达麦亚)
看板Office
标题[问题] 如何抓取试算表中的【】符号?
时间Mon Jan 11 14:51:55 2021
软体:GOOGLE试算表
版本:网上最新
各位前辈午安
之前有幸得到S大关於制作中日期的筛选解答
算式如下我先贴出
=QUERY('范例'!A1:D11,"select A,B,C,D where
((C<=date"""&text(F2,"yyyy-mm-dd")&""") and
(D>=date"""&text(F2,"yyyy-mm-dd")&"""))",0)
现在想请问在"范例"页签不被更动的情况下
是否可抓取带有【】的上层讯息?
解说如图
1.范例页签
https://i.imgur.com/UzrH30t.jpg
2.上面算式得出今天制作中项目
https://i.imgur.com/1wV0UQd.jpg
但面临到的问题就是不知道大项目,只知道小项目
3.希望得到的结果如下图
https://i.imgur.com/vtD8KrJ.jpg
再请各方先进协助,感觉是要抓取往上有【】的栏位并显示
跪求各方先进解惑(BOW)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.235.135.49 (马来西亚)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1610347917.A.5AF.html
1F:→ soyoso: 条件上加上或or,B是开始字元是括号【的,以like,括号後 01/11 15:24
2F:→ soyoso: 面不定数字元以% 01/11 15:24
4F:→ ejeanstone: 感谢S大解惑,想请问能提供您修正的算式吗? 01/11 15:33
5F:→ soyoso: ?我已经提供方法了 01/11 15:36
6F:→ soyoso: 请先试着做看看好吗 01/11 15:36
7F:→ ejeanstone: 了解~感谢! 01/11 15:38
8F:→ soyoso: 做了有问题再提出;也可用filter来做,可不用date...text 01/11 15:45
9F:→ soyoso: ,条件直接看储存格f2的日期是否在开始C栏和结束D栏日期内 01/11 15:45
10F:→ soyoso: ,and以*,开始字元是否为括号【,以函数left,or以+ 01/11 15:45
11F:→ ejeanstone: 好的~稍晚试试看,成功再告知S大,感谢! 01/11 15:52
S大早安,早上用试了一下,发现写成三交集的条件了...
=FILTER('范例'!A2:D11,(LEFT('范例'!B2:B11,1)=G2),('范例'!C2:C11<=F2)&('范例
'!D2:D11>=F2))
单独写筛选日期OK,单独写筛选引号也OK,但就是不知道怎麽向上抓取,所以变成无交集
https://i.imgur.com/OG1IF4T.jpg
试过连接用+号,逗号,AND,&,OR,好像都不太对,再请S大提供思路~感谢!
※ 编辑: ejeanstone (111.235.135.49 马来西亚), 01/12/2021 12:07:07
12F:→ soyoso: 就回文01/11 15:45 写的,and以*,or以+,(条件1)*(条件2) 01/12 12:26
13F:→ soyoso: ,or的条件以+再加入 01/12 12:26
14F:→ ejeanstone: 好,感谢S大,我试试看 01/12 13:38
15F:→ ejeanstone: 成功了感谢S大赐教! 01/12 14:00
想延伸询问,现在会抓【的条件,但发现好像我可能找错方向
当范例出现第9第10列的时候,如下图
https://i.imgur.com/nkDVFpJ.jpg
公式就会跑出无意义的第10列
https://i.imgur.com/f0MBxeT.jpg
等於筛选【的出现条件不是无限制的
而是下方那列有符合日期的情况才会出现
再请S大提供思路,感谢!
※ 编辑: ejeanstone (111.235.135.49 马来西亚), 01/12/2021 16:09:33
16F:→ soyoso: 可多一栏辅助栏判断c栏是否为空白储存格"",是的话函数 01/12 17:17
17F:→ soyoso: countifs,以储存格c2来看,范围函数offset,储存格c3起, 01/12 17:17
18F:→ soyoso: 高度以函数match,搜寻true,搜寻就是c3起往下是否为空白 01/12 17:17
19F:→ soyoso: 储存格="",有了offset的动态范围就可以看储存格g2的日期 01/12 17:17
20F:→ soyoso: 是否在开始和结束日期内,没有的话就是0(如连结内储存格e9 01/12 17:17
21F:→ soyoso: ),那c栏不是空白储存格的话也回传0;公式有使用到阵列, 01/12 17:17
22F:→ soyoso: 配合函数arrayformula 01/12 17:17
23F:→ soyoso: 原本filter要以b栏判断的,就改以辅助栏大於0 01/12 17:17
25F:→ ejeanstone: 感谢S大~有点头大~晚点来试试看 01/12 17:31
目前写到这边,还不太清楚辅助栏的写法,还有arrayformula应该写在哪个段落里面?
https://i.imgur.com/OpobRlF.jpg
再请S大指点,感谢!
※ 编辑: ejeanstone (111.235.135.49 马来西亚), 01/13/2021 15:57:50
26F:→ soyoso: 01/12 17:17的回文写了,函数match,搜寻true,不是搜寻"" 01/13 16:22
27F:→ soyoso: 搜寻是c3起往下是否为空白储存格="",不是c2:c13,回文写 01/13 16:22
28F:→ soyoso: 的是c3起往下是否为空白储存格="",这里是要搜寻判断後的 01/13 16:22
29F:→ soyoso: 逻辑值true或false,不是搜寻储存格 01/13 16:22
30F:→ soyoso: arrayformula可包countifs,或是最外层(如果还有配合其他 01/13 16:22
31F:→ soyoso: 函数如if的话) 01/13 16:22
32F:→ soyoso: 另外要了解一下函数countifs,这个动态范围不是在条件,条 01/13 16:26
33F:→ soyoso: 件要指定的是储存格g2(介於开始和结束日期方面,要自行调 01/13 16:26
34F:→ soyoso: 整) 01/13 16:26
35F:→ ejeanstone: 好的~感谢S大~晚点来测试看看 01/13 16:31
36F:→ soyoso: 补充一下,c栏无资料方面我是以空白储存格来模拟的,如果 01/13 16:53
37F:→ soyoso: 实际资料是空字串的话,则可搜寻"",但不是c2:c13而是c3起 01/13 16:53
38F:→ soyoso: 往下的范围 01/13 16:53
感谢S大的动脑鞭策XD
自己用很土法炼钢的筛选写出,S大的方法我再另外研究~
https://i.imgur.com/MXB1XuM.jpg
https://i.imgur.com/0ru0UH8.jpg
https://i.imgur.com/giuHFjm.jpg
--
刚刚发现这个写法也会有个毛病
就是用OFFSET抓含有【符号的下一列
但如果条件是出现在第二列的时候
有【的总项目反而不见了...
例如图小华的【厨房应该要出现】
却因为拖地选项的日期不在今日内而消失
我再想想怎麽处理Orz
※ 编辑: ejeanstone (111.235.135.49 马来西亚), 01/19/2021 11:42:22
※ 编辑: ejeanstone (111.235.135.49 马来西亚), 01/19/2021 12:06:59
39F:→ soyoso: 如原po回文offset偏列列数固定打1判断下一列,这是没有用 01/19 12:26
40F:→ soyoso: 的。 01/19 12:26
41F:→ soyoso: 因为不确定日期是否在每一个制作专案的开始结束日期内,所 01/19 12:26
42F:→ soyoso: 以要先确定每一个制作专案的范围,范围的起和迄如何知道, 01/19 12:26
43F:→ soyoso: 以内文连结来看就是c栏的空白储存格,起就是b栏左侧为【的 01/19 12:26
44F:→ soyoso: 下一列,那迄以01/12 17:17回文"函数match,搜寻true..." 01/19 12:26
45F:→ soyoso: ,往下找到第一个空白储存格的相对位置(是否减1,因不影响 01/19 12:26
46F:→ soyoso: 结果,就自行调整),用於offset的高度 01/19 12:26
47F:→ soyoso: 如果也不了解,match如何使用也没有关系,再多一栏辅助栏 01/19 12:38
48F:→ soyoso: ,上述回文就写到,"范围的起和迄如何知道,以内文连结来 01/19 12:38
49F:→ soyoso: 看就是c或d栏的空白储存格",也就是判断当空白储存格回传 01/19 12:38
50F:→ soyoso: 列号row,两两相减就是offset的高度了,迄的列号如何取得 01/19 12:38
51F:→ soyoso: ,min或是判断时就回传於下方储存格内 01/19 12:38
52F:→ ejeanstone: 感谢S大~下午来试试看 01/19 13:09