excelperfect
引言:本文學(xué)習(xí)整理自dailydoseofexcel.com,很有意思的一件事。
如何在一列列表中創(chuàng)建包含篩選項(xiàng)目的數(shù)組?SUBTOTAL函數(shù)允許使用有限數(shù)量的工作表函數(shù)對(duì)此類數(shù)組進(jìn)行操作,但它不會(huì)展現(xiàn)進(jìn)行公式操作的這個(gè)數(shù)組。然而,OFFSET函數(shù)的第二個(gè)參數(shù)是數(shù)組時(shí),例如:
OFFSET(rng,ROW(rng)-MIN(ROW(rng)),,1)
會(huì)返回一個(gè)單元格區(qū)域數(shù)組。如果數(shù)組大小合適,如本例所示,OFFSET函數(shù)會(huì)為原始單元格區(qū)域(rng)中的每個(gè)單元格返回一個(gè)單獨(dú)的單元格區(qū)域。因此,如果使用SUBTOTAL函數(shù)操作該數(shù)組,則每個(gè)單元格區(qū)域都會(huì)單獨(dú)計(jì)算。這樣,公式:
=SUBTOTAL(3,OFFSET(rng,ROW(rng)-MIN(ROW(rng)),,1))
對(duì)于每個(gè)可見的單元格計(jì)算為1,如果單元格不可見則計(jì)算為0。使用3作為SUBTOTAL函數(shù)的第一個(gè)參數(shù)計(jì)算可見區(qū)域內(nèi)的項(xiàng)目數(shù)。由于每個(gè)區(qū)域內(nèi)只有一項(xiàng),因此答案只能是0或1,如下圖1所示。
圖1
這樣,此公式可以用作數(shù)組,指示列表中已過篩選和未篩選的行。如果要返回一列列表中的項(xiàng)目數(shù)組,使用:
=IF(SUBTOTAL(3,OFFSET(rng,ROW(rng)-MIN(ROW(rng)),,1)),rng,'')
又如下圖2和圖3所示。在圖2中,是未進(jìn)行篩選操作的;在圖3中,是進(jìn)行了篩選操作的。
圖2
圖3
在單元格B12中的公式:
=SUM((range1='完美Excel')*(SUBTOTAL(3,OFFSET(range2,ROW(range2)-MIN(ROW(range2)),,1))))
單元格B13中的公式:
=SUM((range1='完美Excel')*(SUBTOTAL(9,OFFSET(range2,ROW(range2)-MIN(ROW(range2)),,1))))
與SUBTOTAL函數(shù)一起使用的OFFSET函數(shù)返回一個(gè)數(shù)組,該數(shù)組可用作數(shù)組公式的一個(gè)元素。不帶OFFSET函數(shù)的SUBTOTAL函數(shù)僅返回標(biāo)量值,而不是數(shù)組。
歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識(shí)。
聯(lián)系客服