• ベストアンサー

数値の並ぶ行の中から文字の値だけを別のセルに抽出するには

   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に「お」と抽出したいと思っています。 どなたかわかる方、教えてください。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.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 >検索エンジンなどである文字を打ち込むところがあって、検索というボタンをクリックしたら、ドロップダウンリストに表示され、指定したセルにその文字が入るという感じです ★それに近い回答になっていないでしょうか?

nicedesu
質問者

補足

回答ありがとうございます。 ジャンル分けの数式ありがとうございます。 またまた、欲を言うようですが、1つの家紋名でジャンルが重複してしまうものもあります。例えば、「亀甲に花菱」という家紋は「亀甲」と「菱」というジャンルで重複しています。どちらとも抽出可能な数式はあるでしょうか?理想としては、F列に1つ目のジャンルで、G列が2つ目、H列が3つ目といった感じです。最大3つの重複です。 http://oshiete1.goo.ne.jp/qa3356739.html​ の件ですが、もちろん作って頂いた関数で対処できそうなのですが、またまた、欲を言えば、ユーザーフォームなど使ってセル上でないところでできれば、さらに見やすく、使いやすいかと思って、あのような回答をいたしました。

その他の回答 (5)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

>ABCDE列には文字やら数字やらが入っています。 ここがまだ曖昧です。実例を挙げていただければ回答の精度も上がるのに残念です。 回答した式で補足されたとおりの表を作成して試しましたが、R2は「あ」、S2は「空白」になりました。これは期待する結果になっていますか? すると実際のシートのセルの値は、#01の補足に書かれた表とは異なり、 1)セルの書式が「文字列」になっている 2)数字が「全角文字」になっている 3)「0a」のような数字、文字の混在になっている となっている要因が考えられます。特に1)を確認してみてください。 私の回答した式はISTEXT関数で文字列を拾うようにしていますので、数値として入力されていれば、式で拾うことはないはずですが、前提が違うなら使えないかもしれません

nicedesu
質問者

補足

何度もすいません。 では詳しく書かせていただきます。    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つずつでいいなら別ですが、ジャンルが重なってしまう家紋もあって、さっぱりわかりませんでした。 まだ、説明不足な点があるかと思いますが、ご教授お願いします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#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番目…の文字を格納する」ための「順番」を生成するために使用しています

nicedesu
質問者

補足

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

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆少し訂正です =IF(COLUMN(A1)>COUNTIF($A1:$G1,">*"),"",INDEX($A1:$G1,SMALL(INDEX(SUBSTITUTE(($A1:$G1>"*")*1,0,10^5)*COLUMN($A1:$G1),),COLUMN(A1))))

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆こんな式もありますよ =IF(COLUMN(A1)>COUNTIF($A1:$G1,">*"),"",INDEX($A1:$G1,SMALL(INDEX(SUBSTITUTE((A1:G1>"*")*1,0,10^5)*COLUMN(A1:G1),),COLUMN(A1))))

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

関数について理解されていませんね。それは後で説明します 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です)

nicedesu
質問者

補足

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

関連するQ&A

専門家に質問してみよう