簡體   English   中英

具有過濾行和數組公式的結構化引用表公式。 新要求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM