首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跳过空行并对后续的非空行进行计算。

跳过空行并对后续的非空行进行计算。
EN

Stack Overflow用户
提问于 2017-06-14 15:12:02
回答 1查看 95关注 0票数 0

因此,我对使用excel来分析数据集很感兴趣--数据布局如下所示

代码语言:javascript
运行
复制
Color  | WEIGHT  
------ | ------  
Blue   | 1000  
Blue   | 2000  
Blue   | 3000  
Red    | 4225  
Red    | 5000  
Red    | 5750  
Yellow | 6250  
Red    | 7220
Red    | 9280
Blue   | 9720
Blue   | 11000
Blue   | 12000

然后,我想找出所获得的重量,例如蓝色初始值1000,最后值3000,2000年的变化。对于红色5750-3000 = 2750的变化,我知道如何找出什么时候发生颜色变化。If(A1<>A2,A1,0)。这样做给了我一个输出,比如

代码语言:javascript
运行
复制
Color  | WEIGHT  
------ | ------  
Blue   | 1000  | 1000
Blue   | 2000  |
Blue   | 4225  | 
Red    | 4225  | 4225
Red    | 5000  | 
Red    | 5750  |
Yellow | 5750  | 5750
Yellow | 7220  |
Red    | 7220  | 7220
Red    | 9280  |
Blue   | 9280  | 9280
Blue   | 11000 |
Blue   | 12000 | 1200

我想做一张新桌子,显示颜色和重量的变化。的输出类似于以下内容

我使用下面的公式来获得输出

代码语言:javascript
运行
复制
=IFERROR(MMULT(AGGREGATE({14,15},6,$B$1:$B$78/($A$1:$A$78=G2),1),{1;-1}),"")

请记在@XOR LX上,在上面的公式中,我选择的颜色是G2,数据是A和B。

使用这个公式,我可以得到如下的输出

代码语言:javascript
运行
复制
Color|Change  
Blue  | 11000   
Red   | 5055
Yellow| 970

相反,我想得到如下的输出。

代码语言:javascript
运行
复制
Color|Change  
Blue  | 3225   eg (4225-1000)
Red   | 1525
Yellow| 1570
Red   | 2060
Blue  | 2720
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 15:38:41

阵列公式**

=MMULT(INDEX(B:B,N(IF(1,SMALL(IF(MMULT(COUNTIF(E2,CHOOSE({1,2},A$1:A$14,A$2:A$15)),{1;1})=1,LOOKUP(ROW(A$2:A$15),ROW(A$2:A$14))),2*COUNTIF(E$2:E2,E2)-{1,0})))),{-1;1})

假定:

1)您有Excel 2010或更高版本

2)您的表位于A1:B14 (第1行中有标头)

3)你所选择的颜色。“蓝色”,在E2

复制下来给出类似的结果,在E3E4等颜色。

问候

**数组公式的输入方式与“标准”公式不同。首先按住CTRL和SHIFT,然后按ENTER键,而不是只按ENTER键。如果您做得正确,您会注意到Excel在公式周围放置了花括号{} (尽管不要自己尝试手动插入这些括号)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44548564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档