[[20040913220604]] 『文字を検索、抽出する方法』(じん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字を検索、抽出する方法』(じん)

今晩は、初めまして。
文字列の中から、同じ文字を探し、並び替えはせず、見つかった結果を別のセルに記すか、そのままのセルで文字に色か○をつけて抽出することは可能でしょうか?

 A1      A2    A1
 あいぶさき   あ    (あ)いぶさき 
 せとさき
 いのうえわか
 あだちゆみ   あ    (あ)だちゆみ
 文字列     抽出結果  抽出結果 

 Excel2003  Win XP


 オートフィルタ、およびフィルタオプションの設定が
近い機能だと思います。
 オートフィルタを選択、A列のリストから
(オプション)を選択、「あ」「ではじまる」
という条件でフィルタをかけます。
(KAMIYA)


KAMIYAさん、レスありがとうございます。オートフィルタだと『あ』だけの抽出にならないのと『あだちゆみ』のセルの位置が上にずれて結果的に並びが変わってしまいます。
オートフィルタでは無理なのかなのでしょうか?・・


 以下のような状態だとする

   A      B
 1 名前     結果
 2 あいぶさき
 3 せとさき	
 4 いのうえわか
 5 あだちゆみ

 1列目でオートフィルタを使い、
 「あ」で始まる(または「あ*」と等しい)でフィルタをかける。
 結果以下のようになる。

   A      B
 1 名前     結果
 2 あいぶさき
 5 あだちゆみ

 この状態でBの結果列に自分で決めたマークをさくっと付ける。

   A      B
 1 名前     結果
 2 あいぶさき  あ
 5 あだちゆみ  あ

 フィルタを解除すると、以下の状態になる。

   A      B
 1 名前     結果
 2 あいぶさき  あ
 3 せとさき	
 4 いのうえわか
 5 あだちゆみ  あ

 これじゃ駄目なの?

 (通りすがりのPG) にしてもこの掲示板の方式は面白い。


 オートフィルタにこだわったから上記みたいになったけど、
 上記のようなことをするなら別にLeft関数なりMid関数使えばいいのか。
 と言う事はきっと他に何か仕様があるんだろうなぁ。

 (通りすがりのPG)


 > にしてもこの掲示板の方式は面白い。
 意味が違うかもしれませんが、この掲示板は

 元祖はwiki
http://c2.com/cgi/wiki?WikiWikiWeb

 それを結城さんが日本語対応に直したものがyukiwiki
http://www.hyuki.com/yukiwiki/

 それをkazuが一部直したものです。
 (kazu)


     A                 B             C
 1 あいぶさき  	あいぶさき  	あ
 2 せとさき		
 3 いのうえわか		
 4 あだちゆみ  	あだちゆみ  	
 5 あいざわみき	あいざわみき

 上のような配置の場合、C1に あ と入力してB列に検索した結果を出すときは、
 B1セルに =IF(LEFT(A1,LEN($C$1))=$C$1,A1,"") として、下方にコピー
 C1に あい と入力すると以下のような結果になります。
     A                 B             C
 1 あいぶさき  	あいぶさき  	あい
 2 せとさき		
 3 いのうえわか		
 4 あだちゆみ  	  	
 5 あいざわみき	あいざわみき

 A列に強調表示したい場合は、A1セルからA5セルを選択して、書式−条件付書式−条件(1)のところを数式がに変え
 右側の欄に =LEFT(A1,LEN($C$1))=$C$1 を入れて、書式をお好みに変えます。

     A                 B             C
1 あいぶさき  	あいぶさき  	あい
2 せとさき		
3 いのうえわか		
4 あだちゆみ  	  	
5 あいざわみき	あいざわみき

 PS. (通りすがりのPG)さん、面白く感じられて気が向いたときは、時間が許す限りで結構ですので、
    今後もいろいろとご指導お願いします。ペコリ(o_ _)o))
    HNも(定着したPG)さんになっていただきますか(^_^A;
 (川野鮎太郎)

 質問内容とは無関係で恐縮ですが…

 (kazu)氏
 書き込み全体を誰でも修正可能であるという点が面白く思いました。
 元々は海外の物でしたか。
 Perlはあまり触らないのでここで初めて知りました。
 私はMSの軍門に降りまくったVB系のPGなもので…ネットがらみも作るなら.netになってしまいます。
 また、このページのマルチポストOKというポリシーも面白いです。
 ITかくあるべし、と言った感じで。

 (川野鮎太郎)氏
 指導とはとんでもない、私も色々と教わっています。
 Excelについてはあまり知りませんし。
 元々分からない事を調べようと検索したらここにたどり着いたくらいです。
 (定着したPG)とはまだ言えないので(近所で時々見かけるPG)くらいで(笑)

 以上、私信で失礼。
 (通りすがりのPG)

 通りすがりのPGさん、川野鮎太郎さん、kazuさん、レスありがとうございます。
 こんなにいっぱい指導に提案とうれしく思っております(感謝)
 自分なりに色々調べてここに辿りついて質問したいことを整理するまでに
 かなり時間が掛かっただけにすごくありがたかったです(照笑)
 とりあえず提案して頂いたことを試して結果がでたら報告します。
 まだまだ質問したいことがいっぱいありますんで(我侭失礼)
 その時はまたお付き合いくださいませ(願)
                                   (じん)

 お世話になります。
 とりあえずオートフィルタで列を増やして試してみた所、
    A        B         C
 1あいぶさき   なかねかすみ    もりしたちさと
 2やすだみさこ  あだちゆみ     やぶきはるな
 3さとうひろこ  いわさまゆこ    ふじもとみき

 という表から、『あ』から始まるでフィルタをかけるとこうなりました。
    A        B         C
 1あいぶさき   なかねかすみ    もりしたちさと

    A        B         C
 1あ
 2        あ
 3
 こういう結果を出すことは出来るでしょうか?
 またこれが『〜で始まる』ではなくオプションの中に『〜段目から』始まるの
 ような項目を増やすことは可能でようか?
                                                                      (じん)
      

 そう言う事であればオートフィルタを使わずに、私なら…

 Sheetを2つ用意する。
 Sheet1に名前のデータを用意
  A       B        C
 1あいぶさき   なかねかすみ   もりしたちさと
 2やすだみさこ  あだちゆみ    やぶきはるな
 3さとうひろこ  いわさまゆこ   ふじもとみき

 Sheet2に式にてSheet1のデータを引っ張ってくる形を取る。
 A1に設定する式は以下のもの
 =IF(LEFT(Sheet1!A1,LEN($D$1))<>$D$1,"", $D$1)
 前方一致で検索文字を単純に表示する形式。
 この場合、Sheet2のD1に検索文字が入る想定。
 必要なセルにフィルドラッグして拡張してください。

 結果は以下のようなイメージになる。

  A       B        C        D
 1あ                         あ
 2        あ                 
 3                          

 もう一つ…式を以下の物にする
 =IF(ISERROR(SEARCH($D$1,Sheet1!A1)),"", $D$1)
 部分一致で検索文字を単純に表示する形式。

 「と」で探した。
  A       B        C        D
 1                 と        と
 2                          
 3と                と        

 あるいは、
 =IF(ISERROR(SEARCH($D$1,Sheet1!A1)),"", SUBSTITUTE(Sheet1!A1,$D$1,"(" & $D$1 & ")"))
 部分一致で括弧をつけて強調表示する形式。

 「か」で探した。
  A       B        C        D
 1        な(か)ね(か)すみ          か
 2                          
 3                          

 駄目?
 (通りすがりのPG)改め(近所で時々見かけるPG)


 こんばんは。(川野鮎太郎)氏
 氏の指導して頂いたレスで
 『 A列に強調表示したい場合は、A1セルからA5セルを選択して、
 式−条件付書式−条件(1)のところを数式がに変え
 右側の欄に =LEFT(A1,LEN($C$1))=$C$1 を入れて、書式をお好みに変えます。

     A                 B             C
1 あいぶさき  	あいぶさき  	あい
2 せとさき		
3 いのうえわか		
4 あだちゆみ  	  	
5 あいざわみき	あいざわみき                』

強調する部分を”あいぶさき”ではなく”あい”だけ強調するのに色をつけるには
どのような数式にすれば良いしょうか?


 あまり名指しで問い合わせされると、回答も少ないですよ(^_^A;
 私なんかより詳しい諸先輩方がおられるんですから・・・。
 本題ですが、今回はご希望のようなことは残念ながら不可能です。
 どうしてもご希望の結果がほしいのであればマクロを使うことになります。
 (川野鮎太郎)

マクロですか・・ 1から組み立てですね(苦笑)

お世話になります。

    A                 B             C
 1 あいぶさき  	あいぶさき  	あ
 2 せとさき		
 3 いのうえわか		
 4 あだちゆみ  	あだちゆみ  	
 5 あいざわみき	あいざわみき

 上のような配置の場合、C1に あ と入力してB列に検索した結果を出すときは、
 B1セルに =IF(LEFT(A1,LEN($C$1))=$C$1,A1,"") として、下方にコピー
 C1に あい と入力すると以下のような結果になります。
     A                 B             C
 1 あいぶさき  	あいぶさき  	あい
 2 せとさき		
 3 いのうえわか		
 4 あだちゆみ  	  	
 5 あいざわみき	あいざわみき

 数式を入力すると以下のような結果がでずエラーとなります。修復なぜでしょうか?・・
 (じん)

 (*'ω'*)......ん?
 上記でちゃんと表示されますよ・・・。
 A列の文字と、C列の文字を確認してみてください。
 また、エラーはどんなエラーでしょう。
 (川野鮎太郎)

 こんにちは。お世話なります(ペコリ) 
 B1に数式を入力してB2〜B5までコピーするとこうなりました。
    A       B
 1あいぶさき  あいぶさき
 2せとさき   せとさき
 3いのうえわか いのうえわか
 4あだちゆみ  あだちゆみ
 5あいざわみき あいざわみき

 そのあとC1に『あ』を入力するとこうなりました。
   A      B            C
 1あいぶさき  VALUE!         あ        
 2せとさき      VALUE!
 3いのうえわか  VALUE!
 4あだちゆみ    VALUE!
 5あいざわみき  VALUE!

どこかに入力ミスがあるのでしょうか?・・


 はい、入力ミスだと思います。
 間違いなくB1に入れていますか?
 配置が違えば、式の参照先も変えなければなりませんけど・・・
 (川野鮎太郎)

大変申し訳ありません(陳謝) 私の数式の入力ミスです(恥)
本当にすいません。LENを入力しそこなってました。
(じん)

 そう言う事であればオートフィルタを使わずに、私なら…

 Sheetを2つ用意する。
 Sheet1に名前のデータを用意
  A       B        C
 1あいぶさき   なかねかすみ   もりしたちさと
 2やすだみさこ  あだちゆみ    やぶきはるな
 3さとうひろこ  いわさまゆこ   ふじもとみき

 Sheet2に式にてSheet1のデータを引っ張ってくる形を取る。
 A1に設定する式は以下のもの
 =IF(LEFT(Sheet1!A1,LEN($D$1))<>$D$1,"", $D$1)
 前方一致で検索文字を単純に表示する形式。
 この場合、Sheet2のD1に検索文字が入る想定。
 必要なセルにフィルドラッグして拡張してください。

 結果は以下のようなイメージになる。

  A       B        C        D
 1あ                         あ
 2        あ                 
 3                          

 もう一つ…式を以下の物にする
 =IF(ISERROR(SEARCH($D$1,Sheet1!A1)),"", $D$1)
 部分一致で検索文字を単純に表示する形式。

 「と」で探した。
  A       B        C        D
 1                 と        と
 2                          
 3と                と        

 あるいは、
 =IF(ISERROR(SEARCH($D$1,Sheet1!A1)),"", SUBSTITUTE(Sheet1!A1,$D$1,"(" & $D$1 & ")"))
 部分一致で括弧をつけて強調表示する形式。

 「か」で探した。
  A       B        C        D
 1        な(か)ね(か)すみ          か
 2                          
 3                          

 駄目?
 (通りすがりのPG)改め(近所で時々見かけるPG)


 sheet2へ引っ張るかたちではなく、
  A       B        C
 1あいぶさき   なかねかすみ   もりしたちさと
 2やすだみさこ  あだちゆみ    やぶきはるな
 3さとうひろこ  いわさまゆこ   ふじもとみき
  D              E                F                G
 1                                  と                と
 2
 3と                と

 してみたくて、=IF(ISERROR(SEARCH($G$1,D1)),"",$G$1)と
 入力しましたがセルD1は『0』が返って来ました。
 sheet1に検索結果を出すにはもっと違う数式が必要なのでしょうか?
 (じん)

 =IF(ISERROR(SEARCH($G$1,A1)),"",$G$1) では?
             ~~
 ※全文引用は避けたほうが良いですよ。
 (川野鮎太郎)

 失礼しました。間違って伝わっては失礼と思い、
 全文での引用でしたが全文引用は避けた方が良かったのですね。
 以後気をつけるようにします(陳謝)

 結果は同じでした。入力したセルの位置(D1)が間違いったのでしょうか?
(じん)

 (*'ω'*)......ん? 先ほどの=IF(ISERROR(SEARCH($G$1,A1)),"",$G$1)で
 結果は出ましたよ?(^_^A; 
 D1セルに入力してF3までコピーしてますよね。
 (川野鮎太郎)

 返ってきました。ありがとうございました。
 F3までのコピーが足りませんでした。ミスばかりですいません(陳謝)
 G1に文字を入れるまでD,E,Fには0となるとは不思議ですね。
 (じん)

 この時の『0』を消して空白セルにしておくのは無理なのでしょうか?
 (じん)

 元は自分で書いたものなので自分で落とし前をつけておこう…
=IF(ISERROR(SEARCH($G$1,A1)),"",IF($G$1="","",$G$1))
あるいは
=IF(ISERROR(SEARCH($G$1,A1)),"",$G$1) & ""
として見てください。0が消えます。
(ご近所PG)

すっかり消えました。
ありがとうございました。
(じん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.