Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3337|回复: 13

[已解决]对于同一个表达式,为什么在不同函数里,执行顺序会不同?

[复制链接]
发表于 2015-7-15 23:13 | 显示全部楼层 |阅读模式
11.jpg

22.jpg

1.rar (4.09 KB, 下载次数: 10)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-7-16 05:57 | 显示全部楼层
count(A1:A3+100)直接回车(不是数组)时出错能显示第一个结果1,
而 count(A2:A3+100)直接回车为什么没有显示第一个结果(1)?

( count(A1+100) 计算结果是1, count(A2+100) 计算结果也是1)
回复

使用道具 举报

 楼主| 发表于 2015-7-16 09:37 | 显示全部楼层
baksy 发表于 2015-7-16 05:57
count(A1:A3+100)直接回车(不是数组)时出错能显示第一个结果1,
而 count(A2:A3+100)直接回车为什 ...

谢谢baksy

我不明白2楼的意思。试了下,
=A1:A3+100,先计算A1:A3
=SUMPRODUCT(A1:A3+100+A1:A3+100),先计算A1:A3+100


还是没明白


回复

使用道具 举报

发表于 2015-7-16 10:27 | 显示全部楼层
爱疯 发表于 2015-7-16 09:37
谢谢baksy!

我不明白2楼的意思。试了下,

count(A1:A3+100)是
count(A1+100)、count(A2+100)、count(A3+100)的组合
公式的结果应该是 count(A1:A3+100)的第一个结果 count(A1+100)= 1 。
回复

使用道具 举报

 楼主| 发表于 2015-7-16 10:59 | 显示全部楼层
baksy 发表于 2015-7-16 10:27
count(A1:A3+100)是
count(A1+100)、count(A2+100)、count(A3+100)的组合
公式的结果应该是 c ...

4楼意思明白了。

为什么SUMPRODUCT就要先计算 A1:A3+100,从公式求值的下滑线可看出
回复

使用道具 举报

发表于 2015-7-16 11:06 | 显示全部楼层
在SUMPRODUCT(A1:A3+100)里,先计算 A1:A3+100
在COUNT(A1:A3+100)里,先计算 A1:A3
请问如题,谢谢!


我覺得兩個都該是先計算 A1:A3+100

SUMPRODUCT函數具有組數計算能力,可以 A1:A3+100 先行計算再加總

COUNT函數具有組數計算能力,遇到要組數計算時只處理第一組,所以回傳1,若將A1改為A就回傳0。
若公式以 CTRL+SHIFT+ENTER 三鍵輸入後強迫公式中COUNT函數具有組數計算能力,COUNT(A1:A3+100) 就會出現 3


回复

使用道具 举报

 楼主| 发表于 2015-7-16 11:42 | 显示全部楼层
AmoKat 发表于 2015-7-16 11:06
在SUMPRODUCT(A1:A3+100)里,先计算 A1:A3+100
在COUNT(A1:A3+100)里,先计算 A1:A3
请问如题,谢谢!

QQ截图20150716112607.jpg


感觉有1点点明白,但却说不清楚
回复

使用道具 举报

发表于 2015-7-16 12:25 | 显示全部楼层
爱疯 发表于 2015-7-16 11:42
感觉有1点点明白,但却说不清楚

這只是函數對組數 (Array) 計算能力的差別

Array1 = A1:A3 + 100 = {1;2;3} + 100 = {101;102;103}
計算展開就是如此

對SUMPRODUCT他可以處理 = A1:A3 + 100 = {1;2;3} + 100 = {101;102;103}

但對 COUNT( A1:A3 + 100) 就沒有辦法處理,必須以三鍵輸入啟動組數計算能力後,處理過程如上。
若沒有用三鍵輸入啟動組數計算能力 COUNT( A1:A3 + 100) 就變成 COUNT( A1 + 100)來計算。
函數使用習慣就變成潛規則

COUNT( {1;2;3}  + 100) 這樣就沒有問題,他能直接計算成功,不用三鍵輸入啟動組數計算能力。

文中所提 組數計算能力 是指含有 儲存格格範圍 的組數計算,如A1:A3,ROW(1:3), COLUMN(A:C)等參與計算時。
{1,2,3} 這種組數就可以直接計算

抱歉講得很亂


回复

使用道具 举报

 楼主| 发表于 2015-7-16 15:40 | 显示全部楼层
AmoKat 发表于 2015-7-16 12:25
這只是函數對組數 (Array) 計算能力的差別

Array1 = A1:A3 + 100 = {1;2;3} + 100 = {101;102;103}

谢谢AmoKat

=SUMPRODUCT(A1:A3+100+200),array1是:

A)A1:A3
B)A1:A3+100
C)A1:A3+100+200

我觉得应该选C,可说不上理由。

{:041:}
回复

使用道具 举报

发表于 2015-7-16 17:43 | 显示全部楼层    本楼为最佳答案   
爱疯 发表于 2015-7-16 15:40
谢谢AmoKat!

=SUMPRODUCT(A1:A3+100+200),array1是:


=SUMPRODUCT(A1:A3+100+200),array1是:

A)A1:A3
B)A1:A3+100
C)A1:A3+100+200

我觉得应该选C,可说不上理由。


=SUMPRODUCT(A1:A3+100+200),array1是
C)A1:A3+100+200

沒有錯,就是C

Araaay1 就是組數,這組數由 A1:A3 範圍儲存格 +100 + 200 經過計算產生。

在SUMPRODUCT他就能自動計算

但在COUNT就不能自動計算,所以需要用 CTRL+SHIFT+ENTER 三鍵輸入公式方式,通知EXCEL採用組數計算方式處理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 16:12 , Processed in 0.385175 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表