最初に特定の列にフィルターを適用して「一意のレコードのみ」を表示するシートがあります。これで、たとえば次のような値を含む列ができました。
Applepie
Applesauce
Crabapple
Banana
Mango
「Apple」という単語を含むすべての表示セルの数が必要です。これにより、非表示の(フィルターで除外された)セルが除外されることに注意してください。
今、私は式を見つけました:
`=SUMPRODUCT(SUBTOTAL(3,OFFSET(Sheet1!A:A,ROW(Sheet1!A:A)-MIN(ROW(Sheet1!A:A)),,1))*(Sheet1!A:A="<Text to search>"))`
ただし、この式の問題は、この式がテキスト全体を検索することです。その一部ではありません。セルの数を返すようにこの数式を変更するにはどうすればいいですか「Apple」を含むつまり、この例では、結果として3を返す必要があります。
ワイルドカードを使用したCOUNTIF
は単独で機能し、テキストのどこかに「Apple」が含まれるすべての行をカウントしますが、表示されている行に限定されず、COUNTIF
SUBTOTAL
式と組み合わせて。
SEARCH
関数を使用して、このように式を調整します
=SUMPRODUCT(SUBTOTAL(3,OFFSET(Sheet1!A:A,ROW(Sheet1!A:A)-MIN(ROW(Sheet1!A:A)),,1)),ISNUMBER(SEARCH("Apple",Sheet1!A:A))+0)
注:そのバージョンは遅くなる可能性があり、列全体を参照します-可能な場合は範囲を制限することをお勧めします
代替アプローチ
その長い式を避けたい場合は、ヘルパー列を使用して、各行がフィルターされているかどうかを示すことができます。 Sheet1 Z2では、この式を下にコピーして使用します
=SUBTOTAL(3,A2)
これで、COUNTIFS
関数を使用して、「Apple」を含む表示行をカウントできます
=COUNTIFS(A:A,"*Apple*",Z:Z,1)
テスト:=COUNTIF(A2:A10;"Apple*")
変更range