• ベストアンサー

エクセルの「フォーム」機能を使って作成したデータを…。

エクセルの「フォーム」機能(「データ」→ 「フォーム」を選択して使用)を使用して以下の表を作成しました。 A列 12345 25896 11589 37586 A列をオートフィルタを使って検索する際、 「から始まる」を使って検索したいのですが (ex.「1から始まる」にすれば「12345」と「11589」が でてくる) フォーム機能を使用して作成したデータの場合、 一致した値でないとフィルタがかかってくれません。 どのようにしたら「から始まる」でも検索できるようになるか、ご存知のかたいらっしゃいませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

フォーム機能を使用したので質問の検索が出なかったのでは無いと思います。 『1から始まる』をするためには、入力されているデータが『文字』でないといけません。 もし、『文字』として数字を入力したいのであれば、予め入力するセルの書式を文字に変更してから、フォームで入力を始めなければなりません。 話が長くなりましたが、結論を申しますと、もし、数字の長さが全て5桁であれば『10000以上』AND『19999』以下で抽出できます。 もし長さが変わる場合は、データを削除し、入力する列の書式設定を『文字』にして再度、打ち直す、または新規の列を1つ挿入し、TEXT関数で数値を文字に変更する必要があります。

aoko_m
質問者

お礼

お礼が遅くなって申し訳ございません。 ありがとうございました。 とても参考になりました。 文字でないといけないとは…。知りませんでした。。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

フィルタではないが、自称imogasi方式でやってみます。 例データ  A列   B列    D列 番号 1221 1 1221 2345 122 2222 123 122 2 112322 222 12333 2312 #N/A 123 3 #N/A 2345 112322 4 321 12333 5 B2に=IF(MID(A2,1,1)="1",MAX($B$1:B1)+1,"") と入れて下方向に式を複写。上記B列の通り。 D列に D2に=INDEX($A$2:$A$100,MATCH(ROW()-1,$B$2:$B$100,0),1) と入れて、式を下方向に複写する。 結果は上記の通り。 B列が作業列で邪魔なので、非表示にするか、右の方の目立たない列を使う。 エラーを出さないようには、D列D2セルの式を =IF(ROW()-1>MAX(B:B),"",INDEX($A$1:$A$100,MATCH(ROW()-1,$B$1:$B$100,0),1)) にする。 A列データ変化、増減に即座に反映する。

aoko_m
質問者

お礼

お礼が遅くなってしまい申し訳ございません。。 ありがとうございました。 関数がほとんど分からないため。。 これから勉強する際の参考とさせていただきます!

関連するQ&A