簡単な基準でセルを検索する

簡単な基準でセルを検索する

次のようなデータがあります:

ここに画像の説明を入力してください

見つけ出す必要がある(行番号を取得)文字で始まるセル

私の現在のアプローチは「ヘルパー」列を使用することです。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
注: 一致では大文字と小文字は区別されません。一致が見つかったら、エラーを管理する必要があります。

関連情報