
次のようなデータがあります:
見つけ出す必要がある(行番号を取得)文字で始まるセルあ
私の現在のアプローチは「ヘルパー」列を使用することです。B1私が入ります:
=IF(LEFT(A1)="A",1,"")
そしてB2私が入ります:
=IF(LEFT(A2)="A",MAX($B$1:B1)+1,"")
下にコピーします。これで興味のある行が特定されます。最後にC1私が使う:
=IFERROR(MATCH(ROWS($1:1),$B$1:$B$23,0),"")
コピーします。
私の目標は、「ヘルパー」列を削除することです。
私が見つけた選択肢は次の 2 つだけです。
- オートフィルタを使用する
- VBAを使用するユーディーエフ
自動フィルタのアプローチは、データが更新されるたびにフィルタを再実行する必要があるため、適切ではありません。ユーディーエフシートは VBA フリーの環境で動作する必要があるため、このアプローチは適切ではありません。
行番号を取得できる数式や配列数式はありますか、それとも「ヘルパー」列で止まってしまうのでしょうか?
答え1
Ctrlこれを+ Shift+を使って配列数式として入力してみてくださいEnter:
{=SMALL(IF(LEFT($A$1:$A$23)="A",ROW($A$1:$A$23),9E+99),ROW())}
ただし、実際のアプリケーションでは、基準はこれよりも複雑であると想定します。 をLEFT($A$1:$A$23)="A"
任意の基準に置き換えても、問題なく機能します。
9E+99
これを「A」で始まる行よりも多くの行にコピーすると、返されることに注意してください。代わりに空白を返すように調整することもできます。
{=IFERROR(SMALL(IF(LEFT($A$1:$A$14)="A",ROW($A$1:$A$14),""),ROW()),"")}
答え2
これを試してください:
C1 に 0 を入れます。C2
から:=match(indirect("a"&c1+1&":a<last row>",true),"a*",0)+C1
注: 一致では大文字と小文字は区別されません。一致が見つかったら、エラーを管理する必要があります。