楼主 gouweicao78 |
![]() 【题目】 已知数据区域如A2:F10,共有3列代码,均为数字且包含空单元格。 请在H3单元格用一个公式求出不重复代码的个数。不用定义名称、辅助列、VBA即其它操作。 如有版本限制,请说明。 【得分】 答案正确+3技能分,视精彩程度可再获得3~5技能分。 【期限】 本题暂不设期限,已采用回复仅楼主可见方式,答题后一周内即可获评分。 ![]() |
2楼 rongjun |
|
3楼 wise |
![]() ![]() 不会函数,还是用VBA弄一下,尽管不能得分
|
4楼 liuguansky |
|
5楼 zm0115 |
=SUM(--(FREQUENCY(A3:F10,IF(A2:F2="代码",A3:F10,0))<>0)) 这个可行?借鉴了黄版的一个帖子 还可以短2个字符 =SUM(--(FREQUENCY(A3:F10,IF(A2:F2="代码",A3:F10))<>0)) ![]() |
6楼 biaotiger1 |
|
7楼 mn860429 |
草版,编码有0这个情况吗,没有的话写了这个。
|
8楼 rongjun |
|
9楼 rongjun |
严格来讲,8楼的数组公式还是有缺陷的,比如B3输入0值,得到的结果是15(正确答案应该是14),公式可以更正如下:
|
10楼 wangg913 |
|
11楼 wjc2090742 |
![]() ![]() |
12楼 阿卢 |
=COUNT(1/FREQUENCY(区域,区域)),一列就懂,多列还真没想法 |
13楼 foodorwater |
=COUNT(1/FREQUENCY(A3:F10,IF(A2:F2="代码",A3:F10))) 數組 |
14楼 wqfzqgk |
=COUNT(IF(FREQUENCY((A3:A10,C3:C10,F3:F10),(A3:A10,C3:C10,F3:F10)),1)) |
15楼 棉花糖 |
=COUNT(1/FREQUENCY((A3:A10,C3:C10,F3:F10),(A3:A10,C3:C10,F3:F10))) |
16楼 foodorwater |
再有一個解法,利用offset構建多維引用,再N()降維,然後frequency求不重復值 =COUNT(1/(FREQUENCY(N(OFFSET(INDIRECT({"A3","C3","F3"}),ROW(A3:F10)-ROW(A3:F3),,,)),N(OFFSET(INDIRECT({"A3","C3","F3"}),ROW(A3:F10)-ROW(A3:F3),,,))))) 數組 |
17楼 mxqchina |
数组公式
|
18楼 Zaezhong |
![]() |
19楼 zsj119 |
看看答案 |
20楼 syz105729913 |
参与一下
|
21楼 涅磐86970 |
=SUM(1/IF(A3:F10="",9E+307,COUNTIF(A3:F10,A3:F10))) |
22楼 wangxf9209 |
=COUNT(1/FREQUENCY(IF(A2:F2="代码",A3:F10,),IF(A2:F2="代码",A3:F10,)))-1 |
23楼 涅磐86970 |
=47-SUM(N(SMALL(IF((A2:F2="代码")*(A3:F10<>""),A3:F10,9E+307),ROW(1:47))=SMALL(IF((A2:F2="代码")*(A3:F10<>""),A3:F10,9E+307),ROW(2:48)))) 好长的公式- -。 =SUM(N(FREQUENCY(IF((A2:F2="代码")*(A3:F10<>""),A3:F10),IF((A2:F2="代码")*(A3:F10<>""),A3:F10))>0)) |
24楼 LoveJinLee |
看了草版的一些帖子,还是很有收获的~ 谢谢草版~ 先传上附件 希望草版指正~ ![]() |
25楼 Deksan |
H3 单元格 的公式 如下 =COUNT(1/FREQUENCY(IF((COLUMN(A3:F10)=IF(A2:F2="代码",COLUMN(A3:F10))*ISNUMBER(A3:F10)),A3:F10,"A"),IF((COLUMN(A3:F10)=IF(A2:F2="代码",COLUMN(A3:F10))*ISNUMBER(A3:F10)),A3:F10,"A"))) 数组公式 按 Ctrl+Shift+Enter |
26楼 syz105729913 |
之前没考虑到0值,再来一个
优化2
|
27楼 piny |
=SUM(--(MATCH(SMALL(IF(A2:F2="代码",IF(A3:F10<>"",A3:F10,9^9)),ROW(1:24)),SMALL(IF(A2:F2="代码",IF(A3:F10<>"",A3:F10,9^9)),ROW(1:24)),)=ROW(1:24)))-OR((A2:F2="代码")*(A3:F10="")) 數組 =========================================================================== 簡化二 =COUNT(1/FREQUENCY(IF(A2:F2="代码",IF(A3:F10<>"",A3:F10)),IF(A2:F2="代码",IF(A3:F10<>"",A3:F10)))) |
28楼 Cuikool |
=SUM(IF(FREQUENCY((A3:A10,C3:C10,F3:F10),(A3:A10,C3:C10,F3:F10))>0,1))![]() |
29楼 Violet_Universe |
觉得排序重复了一遍,没时间简化了,有时间再试一试,请草版指教 刚才代码有点问题修正一下呵呵
|
30楼 Violet_Universe |
如果偷懒一下的话,代码这样呵呵
|
31楼 Violet_Universe |
这个公式是不是还能优化呢
|
32楼 Violet_Universe |
我知道为什么了,我忘记真空跟假空的区别了,不知道是不是这个意思,新公式,请指教
|
33楼 LOGO |
或
![]() |
34楼 piny |
27樓有新增一個簡化一些的公式 請協助測試 謝謝 |
35楼 dengxiujuan |
![]() |
36楼 dengxiujuan |
怎么看不到他们回复的消息呢! |
37楼 XIAO_JUN |
=SUM(N(FREQUENCY(IF(A2:F2=F2,A3:F10,0),A3:F10)>0)) 数组 |
38楼 涅磐86970 |
=SUM(N(FREQUENCY(IF((A2:F2="代码")*(A3:F10<>""),A3:F10),IF((A2:F2="代码")*(A3:F10<>""),A3:F10))>0)) |
39楼 laowuwyx |
=COUNT(0/FREQUENCY(IF(A2:F2="代码",A3:F10),A3:F10))数组。 |
40楼 LCinderella |
|
41楼 bluexuemei |
=COUNT(1/FREQUENCY((A3:A10,C3:C10,F3:F10),(A3:A10,C3:C10,F3:F10))) |
42楼 xgg2001 |
方法蠢了点,见笑了哈,如果代码有0的话,我想不出有什么好办法解决,请草版指教!![]() |
43楼 xcd |
看看并学习。好久没上社区磨刀,锈了,公式老长。顺便向各位问个好! H3 =COUNT(0/(MATCH(SMALL(IF((A2:F2="代码")*(A3:F10<>""),A3:F10+1),ROW(1:50)),SMALL(IF((A2:F2="代码")*(A3:F10<>""),A3:F10+1),ROW(1:50)),)=ROW(1:50))) 数组公式。 |
44楼 xcd |
再来一个,请陈版指正。 H3 =COUNT(0/FREQUENCY(IF(A2:F2="代码",A3:F10),A3:F10)) 数组公式。 |
45楼 fangjianp |
H3=COUNT(1/FREQUENCY(A3:F10,IF(A2:F2="代码",A3:F10))) 数组公式,下拉。 |
46楼 yuxin78 |
=COUNT(0/FREQUENCY(INDEX(A3:F10,N(IF(1,ROW(1:8))),N(IF(1,{1,3,6}))),INDEX(A3:F10,N(IF(1,ROW(1:8))),N(IF(1,{1,3,6}))))) |
47楼 gouweicao78 |
【结题】本题结题,此后答案如无其他思路和更好解法,将不再评分。 本题答案为8楼的2个答案: =COUNT(0/FREQUENCY(IF(A2:F2="代码",A3:F10),A3:F10)) =COUNT(0/FREQUENCY((A3:A10,C3:C10,F3:F10),A3:F10)) 主要考核FREQUENCY参数中设置条件和使用合并区域两种用法。 |