プロが教える店舗&オフィスのセキュリティ対策術

   A  B  C  D  E  F  G
1  0  あ  0  0  0  0  0
2  い  0  0  0  0  0  0
3  0  0  0  0  0  う   0
4  0  0  0  0  0  え  お
のように1行目には「あ」という文字だけが文字値としてあるのでこれをF1のセルに「あ」と抽出したいのですが、そういった関数はありますか?IF関数で試みたのですが、例で出したような「あいうえお」のような決まった文字ではなく、その文字はバラバラで検索するものを指定することができません。
また、4行目のように「え」と「お」がある場合はF4に「え」F5に「お」と抽出したいと思っています。
どなたかわかる方、教えてください。

A 回答 (6件)

   A    B      C~E     F     G    H


1  番号  家紋名                     柏
2  1   いたどり           該当なし      酸漿草
3  2   ひげ丸揚羽蝶       揚羽蝶       桔梗
4  3   ほいのし           該当なし      蛇の目
5  4   むくみ稲妻         稲妻        鷹の羽
6  5   むくみ花菱         花菱        稲妻
7                                揚羽蝶
8                                花菱

1)H列を作業列として、ジャンル一覧を入力します(別に他のシートでもいいですよ)
2)F2の式
F2=IF(SUMPRODUCT(COUNTIF(B2,"*"&$H$1:$H$8&"*")),LOOKUP(1,0/COUNTIF(B2,"*"&$H$1:$H$8&"*"),$H$1:$H$8),"該当なし")
★下にコピーすれば、うえのように表示されます

★ところで、下はどうなりましたか?
http://oshiete1.goo.ne.jp/qa3356739.html
>検索エンジンなどである文字を打ち込むところがあって、検索というボタンをクリックしたら、ドロップダウンリストに表示され、指定したセルにその文字が入るという感じです
★それに近い回答になっていないでしょうか?

この回答への補足

回答ありがとうございます。
ジャンル分けの数式ありがとうございます。
またまた、欲を言うようですが、1つの家紋名でジャンルが重複してしまうものもあります。例えば、「亀甲に花菱」という家紋は「亀甲」と「菱」というジャンルで重複しています。どちらとも抽出可能な数式はあるでしょうか?理想としては、F列に1つ目のジャンルで、G列が2つ目、H列が3つ目といった感じです。最大3つの重複です。

http://oshiete1.goo.ne.jp/qa3356739.html
の件ですが、もちろん作って頂いた関数で対処できそうなのですが、またまた、欲を言えば、ユーザーフォームなど使ってセル上でないところでできれば、さらに見やすく、使いやすいかと思って、あのような回答をいたしました。

補足日時:2007/09/24 19:13
    • good
    • 0

>ABCDE列には文字やら数字やらが入っています。


ここがまだ曖昧です。実例を挙げていただければ回答の精度も上がるのに残念です。

回答した式で補足されたとおりの表を作成して試しましたが、R2は「あ」、S2は「空白」になりました。これは期待する結果になっていますか?

すると実際のシートのセルの値は、#01の補足に書かれた表とは異なり、
1)セルの書式が「文字列」になっている
2)数字が「全角文字」になっている
3)「0a」のような数字、文字の混在になっている
となっている要因が考えられます。特に1)を確認してみてください。

私の回答した式はISTEXT関数で文字列を拾うようにしていますので、数値として入力されていれば、式で拾うことはないはずですが、前提が違うなら使えないかもしれません

この回答への補足

何度もすいません。
では詳しく書かせていただきます。
   A   B       C          D      E    
1 番号 家紋名   ファイル名    パターン 亀甲の有無
2 1  いたどり    いたどり.EMF    C     0
3 2  ひげ丸揚羽蝶 ひげ丸揚羽蝶.EMF  C     0
4 3  ほいのし    ほいのし.EMF    C     0
5 4  むくみ稲妻   むくみ稲妻.EMF   C     0
6 5  むくみ花菱   むくみ花菱.EMF   B     0
F以降は記述のとおりです。
F2には
=IF(COUNTIF(B2,"*柏*"),"柏",IF(COUNTIF(B2,"*酸漿草*"),"酸漿草",IF(COUNTIF(B2,"*桔梗*"),"桔梗",IF(COUNTIF(B2,"*蛇の目*"),"蛇の目",IF(COUNTIF(B2,"*鷹の羽*"),"鷹の羽",IF(COUNTIF(B2,"*橘*"),"橘",IF(COUNTIF(B2,"*引両*"),"引両",0)))))))
G2には
=IF(COUNTIF(B2,"*茗荷*"),"茗荷",IF(COUNTIF(B2,"*目結*"),"目結",IF(COUNTIF(B2,"*木瓜*"),"木瓜",IF(COUNTIF(B2,"*井筒*"),"井筒・井桁",IF(COUNTIF(B2,"*井桁*"),"井筒・井桁",IF(COUNTIF(B2,"*梅*"),"梅",IF(COUNTIF(B2,"*沢瀉*"),"沢瀉",0)))))))

といったIF関数が入っています。
これは、家紋名をジャンルごとに分けたいからです。面倒だったのですが、やり方がわからなく、このIF関数を繰り返し、F~Qまでジャンルになる文字を抽出しています。このジャンルは80ほどあるためIF関数で7つごとに分けています。本当の理想で言えば、このジャンルはSheet3のA列に並んでいるのでこれと照合し、一致したら、ジャンル名をF列に表す。というふうにしたかったのですが、ジャンルが1つずつでいいなら別ですが、ジャンルが重なってしまう家紋もあって、さっぱりわかりませんでした。
まだ、説明不足な点があるかと思いますが、ご教授お願いします。

補足日時:2007/09/21 21:55
    • good
    • 0

#01です。


R1セルに
=IF(SUMPRODUCT(ISTEXT($A1:$Q1)*1)>COLUMN(A1)-1,INDEX(1:1,LARGE(INDEX(ISTEXT($A1:$Q1)*COLUMN($A1:$Q1),),SUMPRODUCT(ISTEXT($A1:$Q1)*1)-COLUMN(A1)+1)),"")
を貼り付けて、右方向および下方向にコピーしてください

COLUMN(A1)は実際のセルを指しているのではなく、すこし違う目的で使用しています。「R列が1番目、S列が2番目…の文字を格納する」ための「順番」を生成するために使用しています

この回答への補足

早速の回答ありがとうございます。
申し訳ないです。細かく説明をしなければなりませんでした。
ABCDE列には文字やら数字やらが入っています。
教えて頂いた数式をR2に入力したら、A2の文字が出てきました。さらに、S2にしたら、B2が出てきました。私が求めているのは、F~Q列にある数字・文字の中から文字を抽出することです。
説明不足で申し訳ないです。

補足日時:2007/09/21 19:48
    • good
    • 0

◆少し訂正です


=IF(COLUMN(A1)>COUNTIF($A1:$G1,">*"),"",INDEX($A1:$G1,SMALL(INDEX(SUBSTITUTE(($A1:$G1>"*")*1,0,10^5)*COLUMN($A1:$G1),),COLUMN(A1))))
    • good
    • 0

◆こんな式もありますよ


=IF(COLUMN(A1)>COUNTIF($A1:$G1,">*"),"",INDEX($A1:$G1,SMALL(INDEX(SUBSTITUTE((A1:G1>"*")*1,0,10^5)*COLUMN(A1:G1),),COLUMN(A1))))
    • good
    • 0

関数について理解されていませんね。

それは後で説明します

J1セルに
=IF(SUMPRODUCT(ISTEXT($A1:$G1)*1)>COLUMN(A1)-1,INDEX(1:1,LARGE(INDEX(ISTEXT($A1:$G1)*COLUMN($A1:$G1),),SUMPRODUCT(ISTEXT($A1:$G1)*1)-COLUMN(A1)+1)),"")
を貼り付けて下方向、および右方向にコピーしてみてください。
すると表示する位置は希望するF列、G列ではないものの期待に添う結果が出ると思います

でもF列にこの関数を埋め込むことはできません。
関数は入力されたセルの値を変更することはできないのです。

>4行目のように「え」と「お」がある場合はF4に「え」F5に「お」と抽出したいと思っています。
4行目のF列は「え」が入力されています。従って関数式をF4に入力するわけにはいきません。もしF4に関数式を入力するなら「え」を入力するわけにはいきません。ご理解いただけますか?

抽出するセルは元のデータとは別の場所でなければならないのです(先ほど例に挙げたJ列なら、データ範囲外なのでOKです)

この回答への補足

回答ありがとうございます。
>4行目のF列は「え」が入力されています。従って関数式をF4に入力するわけにはいきません。
申し訳ないです。勘違いでした。H4と書くつもりでした。

教えて頂いた関数を試してみました。新しいBookに私が書いた例の通りすれば、もちろん理想通りになったのですが、私が関数を貼り付けたい番地が異なるためうまくいきません。
再度教えてください。
  FGHIJKLMNOPQ
2 0あ0000000000
3 00い000000000
4 000000000う00
5 0000000000えお
という並びで、R2,R3,R4というふうに数式を入れていきたいと思います。
自分なりにいじってみたのですが、COLUMNという関数がうまくいってないのかと試行錯誤中です。できれば、教えてください。

補足日時:2007/09/21 19:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!