
最初に特定の列にフィルターを適用して「一意のレコードのみ」を表示するシートがあります。これで、たとえば次のような値を含む列ができました。
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 が返されるはずです。
答え1
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)
答え2
テスト:=COUNTIF(A2:A10;"Apple*")
変更range