[英]Structured referenced table formula with filtered rows and array formula. New requirements
對於這個我無法解決的問題,我需要一些新的要求:
[#ID] ->行計數器
[值] ->只是正數和負數
[顏色] ->只是分類字段
[負數] ->當值列為負數時為1,當正數並累積負數時為0
公式
[#ID] = ROW()-ROW(['# ID])+1
[negative] = IF([@['# ID]]=1,IF([@value]<0,1,0),IF([@value]<0,1+OFFSET([@negative],-1,0)),0))
我如何在過濾某些行時保持此功能正常工作?我想要最大負條紋(數組公式)以及[負]和[ID]列計算序列並在可見行上進行條紋。 這是預期的結果:
帶過濾器
假設表格位於B6:E18
試試這個公式:
在[#ID]字段中:
= -1 + SUBTOTAL( 3, $D$6:$D7 )
在字段[負]中:
= IF( [@value] >= 0, 0,
IF( [@['# ID]] = 1, 1,
SUM( 1, INDEX( [negative], MATCH( -1 + [@['# ID]], ['# ID], 0 ) ) ) ) )
C2
處的最大負條紋(lo.Data是Table
的名稱)
=MAX( lo.Data[negative] )
建議查看以下頁面,以獲取有關所使用功能的其他信息:
Excel函數(字母順序)
小計功能
INDEX功能
匹配功能
添加另一個IF以查看該行是否被隱藏:
=IF(SUBTOTAL(3,[@Value])=0,..
如果隱藏則返回TRUE,否則返回FALSE。
在IF的TRUE中,我們使用上面的值:
=IF(SUBTOTAL(3,[@Value])=0,OFFSET([@Negative],-1,0),...
如果沒有,那么我們使用您當前的公式:
=IF(SUBTOTAL(3,[@Value])=0,OFFSET([@Negative],-1,0),IF([@ID]=1,IF([@Value]<0,1,0),IF([@Value]<0,1+OFFSET([@Negative],-1,0),0)))
但是,當擬合數據的第一個值是負數時,這將出錯,因此我們需要使用IFERROR捕獲它:
=IFERROR(IF(SUBTOTAL(3,[@Value])=0,OFFSET([@Negative],-1,0),IF([@ID]=1,IF([@Value]<0,1,0),IF([@Value]<0,1+OFFSET([@Negative],-1,0),0))),1)
如果您想讓ID使用過濾器重新編號,請使用此代碼作為ID:
=IFERROR(IF(SUBTOTAL(3,[@Value])=0,OFFSET([@ID],-1,0),1+OFFSET([@ID],-1,0)),1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.