[算表] 計算不同物有幾個?

看板Office作者 (glut)時間15年前 (2011/01/13 20:08), 編輯推噓4(4018)
留言22則, 4人參與, 最新討論串1/1
軟體:excel2007 如果一行這樣 a b a c d a b d c a 有函數能找出他總共有幾個不同的東西嗎? 也就是要得出4 (a,b,c,d) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.180.248

01/13 20:57, , 1F
假如資料在 A 欄
01/13 20:57, 1F

01/13 20:57, , 2F
=SUMPRODUCT(--(A1:A100<>""),1/COUNTIF(A1:A100,
01/13 20:57, 2F

01/13 20:57, , 3F
A1:A100&""))
01/13 20:57, 3F

01/14 02:14, , 4F
其實我一直想問 公式裡的--是什麼意思@@?
01/14 02:14, 4F

01/14 07:38, , 5F
樓上可試試 =TRUE 跟 =--TRUE
01/14 07:38, 5F

01/14 17:07, , 6F
--是「減負」的意思 =1--1 等於2
01/14 17:07, 6F

01/14 17:08, , 7F
一般常見的觀念是true為1,false為0,但在某些情況下,excel
01/14 17:08, 7F

01/14 17:08, , 8F
會認定true就是true不是1,false就是false不是0
01/14 17:08, 8F

01/14 17:09, , 9F
在一些公式內,引用的是 某一個參照 或是 陣列就會這樣
01/14 17:09, 9F

01/14 17:10, , 10F
先提原本的 (A1:A100<>"") excel內部是看成true和false
01/14 17:10, 10F

01/14 17:11, , 11F
但我們需要的是0和1的數值,而非邏輯值,如果讓它經過運算,
01/14 17:11, 11F

01/14 17:11, , 12F
就會變成0,1的數值,所以除了 --(A1:A100<>"") 還可以改成
01/14 17:11, 12F

01/14 17:12, , 13F
(A1:A100<>"")*1 或 (A1:A100<>"")/1
01/14 17:12, 13F

01/14 17:12, , 14F
(A1:A100<>"")+0 或 (A1:A100<>"")-0
01/14 17:12, 14F

01/14 17:13, , 15F
另外excel的 N()函數也有提供 true轉1、false轉0 的功能
01/14 17:13, 15F

01/14 17:14, , 16F
另外舉一個最簡單的例子 A1打True A2打True
01/14 17:14, 16F

01/14 17:16, , 17F
A3打=A1*A2 答案是1 沒問題,但A4打=SUM(A1:A2) 答案是 0
01/14 17:16, 17F

01/14 17:17, , 18F
因為裡面A1:A2用的是參照,而參照內的邏輯值會被忽略,所以0
01/14 17:17, 18F

01/14 17:18, , 19F
A5改打=SUM(True:True) 這樣答案就是2了,因為不是用參照或
01/14 17:18, 19F

01/14 17:19, , 20F
陣列,所以邏輯值可以直接變成0、1來計算,不會被忽略
01/14 17:19, 20F

01/14 17:57, , 21F
另外POST一篇 然後標題打好找一點 這樣就太讚了!!
01/14 17:57, 21F

01/15 02:02, , 22F
感謝!!
01/15 02:02, 22F
文章代碼(AID): #1DBkital (Office)
文章代碼(AID): #1DBkital (Office)