作者A1pha ([αλφα])
看板Office
標題Re: [算表] EXCEL有辦法做到TAG的功能嗎?
時間Mon Nov 18 12:22:15 2019
※ 引述《A1pha ([αλφα])》之銘言:
: 標題: [算表] EXCEL有辦法做到TAG的功能嗎?
: 時間: Thu Nov 14 17:14:01 2019
:
: 軟體:
: EXCEL 365
: 版本:
: 365
:
:
:
: 我常常拿EXCEL當作資料庫或是LOG來用~
: 一直很好奇,
: EXCEL有沒有辦法做出TAG的功能?
:
: 以前我的作法是在表格中設定一些幾個欄位來做TAG,
: 例如要做3個TAG就要有3個欄位。
:
: NAME|TAG1|TAG2|TAG3|
: 這樣……
:
: 但是這樣的缺點就是,
: 我在做資料操作的時候,會變得很複雜,
: 例如,我建立了一個TAG,可能叫做 「花費」
: 但是在建立資料的時候,可能不見得他會出現在哪一個TAG欄,
: 所以當我在利用EXCEL函數作操作的時候,就很難搜尋。
: 不能只搜一個欄,必須三個TAG欄都搜,然後用OR的方式把三個搜尋結果疊起來。
:
: 類似這樣:
:
: NAME|TAG1|TAG2|TAG3|
: A___|花費|食物|晚餐|
: B___|娛樂|花費|朋友|
: C___|晚餐|電影|____|
:
:
: 所以才在想有沒有辦法可以把TAG做到一個欄位裡面,
: 這樣我在做函數要搜尋的時候,
: 就可以直接悚一個欄位裡面做搜尋就好了。
:
: 像這樣:
:
: NAME|TAG___________|
: A___|花費,食物,晚餐|
: B___|娛樂,花費,朋友|
: C___|晚餐,電影_____|
:
:
: 這樣我在做函數的操作的時候,只要搜一個欄位就可以了,
: 不需要TAG1欄位搜一遍、TAG2欄位搜一遍、TAG3欄位搜一遍,
: 然後把三個搜尋結果統整成一個陣列,在根據那一個陣列抓資料…
: 實在太累人了。
:
: 謝謝QQ
:
:
: --
: ○ ○ ◢█████◣ ○ ○ ○
: ○ ██◤◤◤◤▎ ○ ○
: ○ ◢█◥██⊙–⊙▏ 幹你媽的!沒看過人魚喔!
: ██████皿█ ▄▄▄▄▄▄▄ 崖上のboyo
: ○ ◢█∕█◥██︶◤◤ ○ ○ ○
: ▂▅▄▆▇ by Airsupply
:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.71.107 (臺灣)
: ※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1573722843.A.706.html
: ※ 編輯: A1pha (118.160.71.107 臺灣), 11/14/2019 17:14:25
: ※ 編輯: A1pha (118.160.71.107 臺灣), 11/14/2019 17:18:39
: → soyoso: 是指將三個欄位的字串連接一起的意思嗎? 11/14 17:25
: → soyoso: 如果是的話,以&連結或函數textjoin 11/14 17:26
: → soyoso: 如 https://i.imgur.com/BgE58TZ.jpg 11/14 17:26
: → soyoso: 如不在一個欄位內且不以內文提到的or方式的話 11/14 17:35
: → soyoso: https://i.imgur.com/ShQ3eSo.jpg 11/14 17:35
請教一下Soyoso大大,
這邊我想確認一下我的理解對不對:
{=INDEX(A:A,SMALL(
IF(COUNTIF($H$1,B$1:D$100),ROW($1:$100)),ROW()))}
我知道Small(if( 的作法是利用IF做判斷,
將為TRUE的項目回傳其row值,然後組成一個陣列,
然後再利用SMALL 1, 2, 3...依序將row傳出來給Index定位。
但是我看不太懂怎麼利用countif 辦到這件事@@
而且還直接解掉多個欄位判斷的問題@@
(我本來以為需要一個欄判斷一次,
然後將多個欄OR起來,沒想到一個countif秒解@@)
可以理解成這樣嗎?
Countif 從B1-->B2-->B3-->C1-->C2-->C3-->D1-->......
這樣的順序依序判斷下來,
值等於H1者,回傳1 (TRUE)
然後由於是 3*100 陣列 對應 1*100 陣列,
所以B1:D100第一排會對應1:100第一排,
也就是 B1:D100 中 B1,C1,D1 的結果會對應,1:100中的 1,
不論B1,C1,D1只要值等於H1,就會回傳1的結果,
藉此判斷哪一列有等於H1的值~~
也就是說Countif在這邊並沒有跟平常一樣把最後的1跟0做加總,
只把對應的值轉換成1跟0的陣列之後就丟給IF去做判斷了@@
這樣對嗎?@@
真的太神了@@
之前從沒想過Countif在陣列公式裡面可以這樣用@@
: → A1pha: 喔喔!! SOYOSO大大太強了@@ 我研究一下。 11/14 17:58
: → A1pha: 太感謝了!! 11/14 17:58
: 推 lecheck: 我的做法是預先定義tag 固定欄位 值就填1 然後應該就可 11/15 06:54
: → lecheck: 以做到動態查表 還要再研究... 11/15 06:54
這個作法也滿不錯的~只是TAG一多表就會變得很大@@
所以才想用填寫,
或是先定義好選項再做成下拉選單的方式@@
--
話說2007年BraDLey被DFA到教士後,放話砲轟豆爺。
傳說於97年上任的豆爺是這回答的...
豆:
Guys like Milton BraDLey...What? So what?
Who are you? Who are you Milton BraDLey
to try to test Billy Beane a proven GM for 10 years?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.37.30 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1574050937.A.949.html
※ 編輯: A1pha (111.240.37.30 臺灣), 11/18/2019 12:28:43
※ 編輯: A1pha (111.240.37.30 臺灣), 11/18/2019 12:30:37
1F:→ soyoso: 說法上不一定相同,然對應這方面如原po所理解的 11/18 13:10
2F:→ soyoso: 但順序依序方面,個人並無法確定,如以評估值來看也有可能 11/18 13:10
3F:→ soyoso: 是b1→c1→d1→b2... 11/18 13:10
4F:→ A1pha: 謝謝S大!! 11/18 13:16
5F:→ A1pha: 也謝謝Cutekid大的指教! 11/18 13:17
6F:→ newacc: 這邊我也滿好奇S大選擇使用COUNTIF的原因是什麼? 11/18 13:19
7F:→ newacc: IF(H$1=B$1:D$100,ROW($1:$100))好像也是同樣效果? 11/18 13:21
8F:→ soyoso: 也沒什麼原因,就當時想到什麼就回什麼了 11/18 13:21
10F:→ soyoso: 也是可行的,find、match配合isnumber什麼都行 11/18 13:23
11F:→ soyoso: 我回文的當下不一定是最短的解法,就只是當下想到什麼就回 11/18 13:23
12F:→ soyoso: 什麼吧了 11/18 13:24
13F:→ newacc: 了解,我以為有什麼我沒有考慮到的特性~ 11/18 14:48