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