• ベストアンサー

EXCELの質問についてです。

EXCELの質問についてです。宜しくお願いします。 あるセル(例:A1)に文字列が入っています。 他のセル(例:A1)に文字列が入っています。 これを、比較して先頭数文字が同じ場合、 他のセルの文字列全てを表示したいのですが、 どの様にしたら良いでしょうか? ちなみに、IFでその文字列が(真)ならそのセル(B1) を表示とかやりたいのですが… 初心者的質問で申し訳ないのですが、何方かどうかご教授お願致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

#3です。#2の補足見ました。 >このDATAはまだ先頭7文字は同じなのですが、 >7文字を持つ文字列のDATAのみ抜き出したのです。 「データ」「オートフィルタ」で「▼」を押して「オプション」 「ABCDEFG」「で始まる」を選択すれば該当の行のみ表示になるので 範囲選択してコピーで別のシートに貼り付けるのが楽です。 ※1行目は項目名をセットしてください。 >今度は、この抜き出したA1にある数値(**.5301,*CR8200,#..9930)等 >をキーにして、一致したらこの先頭文字列を含んでいる文字列を >抜き出して表示させたいのです。 上記でコピーしたシートのデータでオートフィルタ(「を含む」)で 更に抽出すればいいかと... 条件が複数あってどれかひとつを検索するのが面倒なら どこかのセルに(.5301,CR8200,#..9930)を用意しておいて =SUMPRODUCT(COUNTIF(A2,"*"&$X$2:$X$20&"*")*1) 上記の式の結果が0なら文字を含みません。1以上なら一致になります。

re2007a
質問者

お礼

ご回答誠に有難う御座います。 だんだんヒントが掴めてきました。M(__)M

その他の回答 (4)

noname#58440
noname#58440
回答No.4

  あぁ、質問は「先頭数文字が同じ場合」ですネ では先頭7文字が同じ時なら =if(Left(A1,7)=Left(B1,7),B1,"") しかし、#2のコメント >の抜き出したA1にある数値(**.5301,*CR8200,#..9930)等 >をキーにして、一致したらこの先頭文字列を含んでいる文字列 書かれてる事が理解できません、もっと具体的に書いて貰えませんか? A1に入るのは数値ですか?、数値に「*CR8200」は数値ではなく文字列です。 それとも **.5301・・・・この中の「5301」 *CR8200・・・・この中の「8200」 #..9930・・・・この中の「9930」 この様な数値を取り出し、何かと比較したいのですか? A1セルの右側の4文字が数値になってるなら =IF(VALUE(RIGHT(A1,4))=9930,B1,"")  

re2007a
質問者

補足

ご教授誠に有難い限りで御座います。 具体的には、 (A1:)***8484nnnnYYYY/MM/DDhh:mm:ss○○abcedfg.0 (A2:)ABC:xxxxxxxx-xxxxxxxxxxxLogFile(abc_defgh_hijk)object. (A3:)***836121392006/02/0604:25:25xxxx1xxxxxxxxx.0 (A4:)DEF:xxxxxxxx-xxxxxxxxxxx (A5:)***836160712006/02/0604:25:26abcdefgMSG.0 (A6:)FHJ:xxcontrol-Standxxxtimeaccesserror などと書かれている列がずらりと並んでいます。 他の列へ上記の先頭7文字分(*で始まる若しくは#) (私にはこの7文字が重要なのです) を抜き出した列をずらりと並べました。 私はこのMSG群の行の文字列を別々に切り離したいので、 先ずは、キーとなる(**.5301,*CR8200,#..9930)等を抜き出し並べ、 今度はこれら7文字をキーとして、また再度(A1:)~(An:)まで 並んでいる文字列の中から先頭7文字比較して同じ行だけを、 抜き出して表示させたいのです。 大変長くなってしまい申し訳ありません。 質問君になってしまっていて大変申し訳なく思っております。M(__)M

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

あるセル(例:A1)、他のセル(例:X1)として A1="ABC" X1="ABCDEF" のような場合、A1の長さで比較なら B1=IF(LEFT(X1,LEN(A1))=A1,X1,"") もっとも通常なら __X__Y 1_ABC_ABCDEFG 2_ABD_ABDEFGH 3_ACD_ACDEFGH のようにして B1=IF(A1="","",VLOOKUP(A1,$X$1:$Y$3,2,FALSE)) のような使い方するほうが多いと思いますけど...

re2007a
質問者

お礼

ありがとうございます! やってみます!M(__)M

回答No.2

> あるセル(例:A1) > 他のセル(例:A1) 両方 A1というのはご愛敬なのですが、 > 先頭数文字が同じ場合 この条件はもうちょっとよく考えていただかないとどうにもなりません。 「aaa123」「aaa456」、これ3文字までで比較すれば「同じ」、4文字までで比較すれば「違う」ですが、どうしたいのですか?

re2007a
質問者

補足

早速のご回答誠に有難う御座います。 失礼しまた。両方A1になっていました。 DATAが沢山あったので、整理をしたいと思っていました。 そこで、先頭がキーになるので、先頭7文字を抜き、 別のセルへ貼り付け、縦へ並べました。 DATAは残っています。 このDATAはまだ先頭7文字は同じなのですが、 このDATAの数百列のは全て同じではなく、必要となるキー 7文字を持つ文字列のDATAのみ抜き出したのです。 そして、必要なDATAを持つ文字列の先頭7文字のみを抜き出したのです。 そこで、 今度は、この抜き出したA1にある数値(**.5301,*CR8200,#..9930)等 をキーにして、一致したらこの先頭文字列を含んでいる文字列を 抜き出して表示させたいのです。 ややこしくなってしまい申し訳御座いません。

noname#58440
noname#58440
回答No.1

  A1セルの先頭文字とB1セルの先頭文字を比較して同じならB1セルの内容を表示し違うなら何も表示しない方法 =if(Left(A1,1)=Left(B1,1),B1,"")  

re2007a
質問者

お礼

早速のご回答誠に有難う御座いました!M(__)M

関連するQ&A