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