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で質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessの抽出条件

お世話になります。
選択クエリの抽出条件の書き方がわかりません、どなかたお教えください。
質問:基本データ、の数値定義の、登録番号の、4225403~4246003の間の抽出条件で選択クエリの抽出条件セル内にどのように書けばよいでしょうか?

ちなみに私は、&[Forms]![F_抽出条件]![抽出条件]のForms、F_抽出条件、抽出条件、!、[] 等の意味がまったくわからないレベルです。
そのままセルにコピペでOKの形で教えてください。

Aベストアンサー

こんばんは。

>そのままセルにコピペでOKの形で教えてください。
あなたのデータベースのフォーム名とかテキストボックス名が
不明なのでコピペ形式の回答は無理です。

>、&[Forms]![F_抽出条件]![抽出条件]
  「F_抽出条件」というフォームの「抽出条件」というテキストボックスという意味です。
  F_抽出条件」フォームを開いておいて、クエリのデザイン画面から
  抽出条件を右クリックしてビルドでフォーム-読込まれたフォーム
  抽出条件テキストボックスとクリックしていくと簡単に抽出条件が
  入力できますよ。

 ご参考まで。

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?

QRT-PCRをするためにRNA抽出をしています。フェノールの後のクロロ

RT-PCRをするためにRNA抽出をしています。フェノールの後のクロロホルムは極性の差を大きくして、水層と油層に分けやすくするためと書いてあったのを見たんですが、この場合のクロロホルムと、本によく載っているフェノール抽出の後のクロロホルム抽出とはまた違う意味なのでしょうか?よろしくお願いします。

Aベストアンサー

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させることによって中間層に集めるわけですが、後のことを考えてできるだけフェノールは水層から取り除きたいわけです。

クロロホルムにはフェノールのような変性作用はありませんが強力な疎水性物質なので、フェノール+水の溶液に加えるとフェノールを疎水層にほぼ完璧に溶解させることができます。

なのでRNA抽出でもDNA抽出でもクロロホルムの作用はその強力な疎水性でタンパク質を
中間層に集める作用(これはフェノールでも可)とフェノール自体を水層からできるだけ
除去するという作用があるのだと思います。

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させること...続きを読む

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む

Qエクセル2000フィルター抽出条件式について

フィルター抽出条件がうまく抽出出来ません教えてください。
抽出条件式 別シートで作っている。(Bシート) 
巡視日     巡視日
>=2002/05<=2002/07
条件式の意味
2002年5月以上で2002年7月以下のデータを抽出する。
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。

データベース(Aシート)
C列
巡視日
4月8日
5月11日
5月11日
6月5日
7月4日
7月4日

エクセル操作(データ→フィルター→フィルターオプション設定)で
検索条件範囲を
巡視日     巡視日
>=2002/05<=2002/07
指定してやるとデータベース(Aシート)のC列の抽出が
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。
何故でしょうかよろしくお願いします。

Aベストアンサー

こんにちは

>2002年5月と2002年6月しか出てこない。
手入力で 2002/5 とか 2002/7 とすると
EXCELが 2002/5/1 や 2002/7/1 と勝手に
判断して変換されている筈です。

2002/7/1以下と指定したのと同様です

月間を抽出するのにそれぞれ違う月末を考えながら
入力するのも面倒な場合は

巡視日    巡視日
>=2002/5/1  <2002/8/1

の方が楽ですね(^^;

Qround関数の結果、「2.000」と表示設定したA1セルの値を、A2セルに「A1&”人”」と入れた

round関数の結果、「2.000」と表示設定したA1セルの値を、A2セルに「A1&”人”」と入れた場合、「2人」となってしまいます。
A2セルを「2.000人」としたい場合は、どうしたらいいでしょうか?
よろしくお願いします。

Aベストアンサー

前提としてROUND関数の桁数を0と置いているなら下記の通りです.
=TEXT(A1,"#.000")&"人"

参考
https://dekiru.net/article/4509/

QExcelのワイルドカードでの抽出で・・・

ワイルドカードの「?」は任意の1文字という意味ですよね?

住所リストからデータの抽出をおこなうのに、渡辺??」という抽出をおこなったところ、「渡辺○○子」「渡辺○○美」などという結果が出てしまいました。

これってどんな原因が考えられますか?

ワイルドカードはきちんと半角で入力してあります。

Aベストアンサー

#1,2のmshr1962です。
すみません。"が1個余計でした。
="=渡辺??"
で抽出できます。

Qマクロ A1のセルの値を見て、B1に値を入力したい。

エクセルのマクロでA1の値が1ならばB1にaを、2・3・4ならばbを、5ならばCを、それ以外は「該当無し」と入れたいのですが下のマクロではうまく行きません。ぜひご指導ください。
Sub
If Left(Cells(1, 1).Value, 1) = 1 Then Cells(2,1).Text = "a"
ElseIf Left(Cells(1,1).Value, 1) = 2 Or _
Left(Cells(1,1).Value, 1) = 3 Or _
Left(Cells(1,1).Value, 1) = 4 Then Cells(2,1).Text = "b"
ElseIf Left(Cells(z, 37).Value, 1) = 5 Then Cells(2,1).Text = "c"
Else: Cells(z, 40).Text = "該当無し"
End If
End Sub

エクセルのマクロでA1の値が1ならばB1にaを、2・3・4ならばbを、5ならばCを、それ以外は「該当無し」と入れたいのですが下のマクロではうまく行きません。ぜひご指導ください。
Sub
If Left(Cells(1, 1).Value, 1) = 1 Then Cells(2,1).Text = "a"
ElseIf Left(Cells(1,1).Value, 1) = 2 Or _
Left(Cells(1,1).Value, 1) = 3 Or _
Left(Cells(1,1).Value, 1) = 4 Then Cells(2,1).Text = "b"
ElseIf Left(Cells(z, 37).Value, 1) = 5 Then C...続きを読む

Aベストアンサー

入力ミスなのか、いくつもエラーがあります。
>A1の値が1ならばB1にaを、2・3・4ならばbを、5ならばCを、
ということの作業であれば Select Case文を勉強してみてください。
Sub Macro1()
Select Case Left(Cells(1, 1).Value, 1)
Case 1
Cells(2, 1).Value = "a"
Case 2, 3, 4
Cells(2, 1).Value = "b"
Case 5
Cells(2, 1).Value = "c"
Case Else
Cells(2, 1).Value = "該当無し"
End Select
End Sub
といった具合にシンプルになります。

Qニコサウンドで 音声抽出の為の遵守報告

ニコサウンドで、音楽ダウンロードしようとしたら、抽出ボタンがなく

>音声抽出には、音声に著作権上の問題が無い旨の具体的な遵

守報告が必要です<

とありました。これは どういう意味なのでしょうか?

また具体的に報告してください……と 何行か書く欄があったんで

すが、何をどう書けば良いのか迷っています。音声抽出できるよう

にする為には 何をどう書けば良いのか教えて頂けないでしょうか?

音楽配信の知識があまりないので、基本的な質問かもしれませんが

今 困っています

音声抽出できるようになる 方法を 詳しく教えて頂けると

ありがたいです……

Aベストアンサー

二通り考えられます。

1、投稿者によって、抽出出来ないようにロックされている

2、元動画が著作権法、或いはその他法律違反を犯しているため、動画自体が削除されている

原因がわかったところで対処のしようがないのですが…
1の場合なら、「DL-video」(ググってみてください)
というサイトにてニコ動のURLをコピペして一旦PCに動画ごと保存
その後mp3tubeにて変換という方法があります。
(今でも通用するかどうかは不明ですが…)

2の場合ならお手上げです。どうしようもありません

Qエクセルで指定した値の行の同行にある別の数値を抽出する方法

エクセルについてお教えください。
ある行の指定した値【A列】の同行にある別の数値【B列】の合算を抽出したいです。
行には同じ値が複数あるため、複数の数値となります。
(例)
<元の表>  
--------------------------------        
【A列】  【B列】
100cm 3個
200cm 4個
300cm 5個
400cm 3個
500cm 4個
600cm 3個
700cm 1個
100cm 6個
300cm 7個
400cm 100個
200cm 321個
500cm 454個
1000cm 556個
200cm 2個
100cm 3個
-------------------------------
<理想の抽出表>
---------------------------------
 【D列】 【E列】
100cm 12個
200cm 434個
300cm 12個
400cm 103個
500cm 459個
600cm 3個
700cm 1個
800cm 0個
900cm 0個
1000cm 556個
-----------------------------------

色々と探してみましたが見つからなかったため、質問をさせていただきました。
お手数ですが、ご教授いただけると幸いです。
よろしくお願いいたします。

エクセルについてお教えください。
ある行の指定した値【A列】の同行にある別の数値【B列】の合算を抽出したいです。
行には同じ値が複数あるため、複数の数値となります。
(例)
<元の表>  
--------------------------------        
【A列】  【B列】
100cm 3個
200cm 4個
300cm 5個
400cm 3個
500cm 4個
600cm 3個
700cm 1個
100cm 6個
300cm 7個
400cm 100個
200cm 321個
500cm 454個
1000cm 556個
200cm 2個
100cm 3個
-------------------------------
<理想の抽出...続きを読む

Aベストアンサー

こんにちは!

SUMIF関数で対応できると思います。
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
Sheet2のA列はあらかじめ入力されているという前提です。

B列は数値にする必要がありますので、「○個」という入力にはしません。
どうしても「○個」という表示にしたい場合は
セルの書式設定のユーザー定義から
0"個"
としておき、単に数値のみの入力にします。

画像ではSheet2のB2セルに
=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)
という数式を入れフィルハンドルで下へコピーしています。m(_ _)m


人気Q&Aランキング