AIと戦って、あなたの人生のリスク診断 >>

教えてください!
特定の文字を含むセルを返したいのです。

たとえば

C1セルに 田中ゆうこ
D1セルに 佐藤いちろう
E1セルに 酒井みみ
F1セルに 鈴木かなえ
G1セルに 久保ごう

こんな風に横に名前があるデータがあります。

A1セルに「鈴木」と入力したら
C1~G1にある「鈴木」とつく名前を検索し、
該当したらB1セルに返したいのです。

この場合
B1セルに
「鈴木かなえ」と返ってほしいのですが
どのようにしたら出来るのでしょうか?

また、横列の名前の中に同名は存在しません。

どうぞ皆様の知恵をお貸しください!
お願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。



>横列の名前の中に同名は存在しません。

・・・ということでしたら、
B1に↓でどうでしょうか?
--------------------------------------------
=IF(COUNTIF(C1:G1,"*"&A1&"*"),INDEX(C1:G1,MATCH("*"&A1&"*",C1:G1,0)),"")
--------------------------------------------
    • good
    • 6
この回答へのお礼

ありがとうございましたm(__)m
希望どうりのものが返ってきました!

お礼日時:2005/07/09 23:48

>2です


>1さんの方法でできましたね。
すみません
    • good
    • 2

たぶん横並びでは無理だと思います。


まず、形式を選択して貼り付けなどを利用し、縦横を逆にします。
そして名前が並ぶ列の直前に1列挿入し数式
=LEFTB(名前のセル,4)
を使い、頭2文字を切り出します。
あとはvlookupで苗字を入力するセルを検索値に、範囲をLEFTBのセルから名前が並ぶセルに、列番号を"2"に、検索の型を"false"にすれば可能です。

具体的には
A1:数式"=VLOOKUP(B1,C1:D5,2,FALSE)"
B1:ここに苗字(二文字)を入力
C1:数式"=LEFTB(D1,4)"
C2:数式"=LEFTB(D2,4)"
C3:数式"=LEFTB(D3,4)"
C4:数式"=LEFTB(D4,4)"
C5:数式"=LEFTB(D5,4)"
D1:"田中ゆうこ"
D2:"佐藤いちろう"
D3:"酒井みみ"
D4:"鈴木かなえ"
D5:"久保ごう"
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2005/07/09 23:50

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QEXCELで、特定の文字を含むセルを抽出したいのですが。

仕入れ帳のようなシートで、B列に商品名があります。
商品名に特定の文字(数字又は文字)を含む時、空白列のC列に、その文字を抽出する方法をご教示ください。B列の商品名は変化させずにです。
意図は、当シート内で並べ替えをする時に、C列をキーとするためです。
商品名が、各種文字と数字で構成されており、そのままでは、希望する並べ替えができないのです。
宜しくお願い致します。

Aベストアンサー

「IF」関数、「ISERR」関数、「FIND」関数を組合せれば可能ですね。
たとえば、文字「a」を検索するなら、B2セルを対象として、C2セルに、

=IF(ISERR(FIND("a",B2)),"","aが入っています")

と入れます。

注意事項として、アルファベットを検索する場合、大文字と小文字を区別します。
つまり、上の例ではB2セルに「a」があれば、「aが入っています」、と表示されますが、「A」では表示されません。
(「FIND」を「SEARCH」にすれば「a」・「A」どちらでも表示される)

Q特定の文字列を含む場合指定の値を返す エクセル関数

Vlookupだとセルの値全てで照合しますが、特定の文字列を含む場合でVlook的に利用するにはどうすればよいでしょうか。  find やIFだとキリがないかな・・と思い格闘中です。 
アドバイスいただけると幸いです。よろしくお願いします。

Aベストアンサー

こんにちは!
VBAになってしまいますが、一例です。

↓の画像のようにSheet1にSheet2の表に基づいて表示するとします。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)


Sub Sample1() 'この行から
Dim i As Long, k As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")

Application.ScreenUpdating = False
Range(wS1.Cells(2, 2), wS1.Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2)).ClearContents
For k = 2 To wS2.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(wS1.Cells(i, 1), wS2.Cells(k, 1)) > 0 Then
wS1.Cells(i, 2) = wS2.Cells(k, 2)
End If
Next i
Next k
Application.ScreenUpdating = True
End Sub 'この行まで

※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。

お望みの方法でなかったらごめんなさいね。m(_ _)m

こんにちは!
VBAになってしまいますが、一例です。

↓の画像のようにSheet1にSheet2の表に基づいて表示するとします。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)


Sub Sample1() 'この行から
Dim i As Long, k As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")

Applic...続きを読む

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q【Excel】複数の列を参照して、特定の文字列を含む行全体を別シートに抽出する関数

左画面(Book2)のようなシートがあります。

Book2の中で列D・列F・列Iの3列を参照し、別シート(Book4)のA1セルに入力した文字列と一致する文字を含む行全体を、Book4のA3セル以下に抽出するための関数を探しています。

画像の例は、「北海道」という文字列を3列のいずれかに含む行だけを手動で貼り付けたものなのですが、この処理を関数を用いて自動で行いたいのです。

参照したい文字列(北海道)は、3つの列にランダムに含まれている状態です。

元データ(Book2)を更新すれば、別シート(Book4)がリアルタイムに自動で生成されるようにしたいので、関数を使った方法で行いたいと思っています。

ご教示お願い申し上げます。

Aベストアンサー

こんばんは!
一例です。
元データは「Book2」のSheet1にあり、表示するのは「Book4」のSheet1とします。
Book4・Sheet1のA1セルに検索したい文字列を入力し、そのデータを表示させます。
(今回は画像通り”北海道”と入力しておいてください)

Book2のSheet1のJ列を作業用の列として使用します。
J3セルに
=IF(COUNTIF(D3:H3,[Book4.xlsx]Sheet1!$A$1),ROW(),"")
という数式を入れフィルハンドルでこれ以上データはない!という位まで下へコピーしておきます。

そしてBook4、Sheet1のA4セルに
=IFERROR(INDEX([Book2.xlsx]Sheet1!A:A,SMALL([Book2.xlsx]Sheet1!$J:$J,ROW(A1))),"")
という数式を入れ、列・行方向にフィルハンドルでコピーしてみてください。

※ 作業列が目障りであれば遠く離れた列に設けるか
非表示にしておきます。m(_ _)m

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Q特定の文字列を含むセルの個数をカウントしたい

こんにちは。
現在、シフト表作りを任されているのですが、特定の文字列(個人名)を含むセルの個数をカウントして、表内のコマ数をカウントしたいと考えています。

表の名前は、セルの名前登録をしてありますので、ここでは仮に"表"とします。
特定個人の名前は、"名前"とします。
この条件下で、上記を行うにはどのようにすればよいでしょうか?

ご助言お願いします。

Aベストアンサー

no1です。
てっきり「表」という事で早合点していました、お詫びします。
安直ですが、検索範囲を適用範囲を含み連続セル範囲指定でお試し下さい。
=COUNTIF(連続セル範囲,"*"&名前セル&"*")

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで特定の文字を含むセルをコピーしたい

【現在の具体的な状況】
お世話になります、現在エクセルにてデータの集計を行っております。
やりたい事としては
A列にあるデータの中で特定の文字を含むセルを隣のB列、C列にコピーしたい。
と言った内容です。

↓例)

A列
○○○@docomo
○○○@docomo
○○○@softbank
○○○@docomo
○○○@ezweb
○○○@ocn
○○○@plala


と言った具合にメールアドレスが入力されておりますが、これを携帯メールとPCメールとに分けたいのです。


【抱えてる問題/困っている事】
A列に含まれる特定の文字を含むセルを隣のB列に表示されるようにしたいのですが
どうにも思ったようにうまくコピーされません。


【何を聞きたいのか】
B1のセルに下記の関数を用いています。

=IF(ISERR(SEARCH("*docomo*",A1)),A1,"")

これで、docomoを含むセルをB1に返す事には成功しておりますが、その他にsoftbankや、ezwebを含むように条件を追加しようと思った時に、詰まってしまいました。

また、同時に今度は逆にdocomo、softbank、ezwebを含まないセルをC列に返す方法もご教授できればと思います。


お手数ですが、よろしくお願いいたします。

【現在の具体的な状況】
お世話になります、現在エクセルにてデータの集計を行っております。
やりたい事としては
A列にあるデータの中で特定の文字を含むセルを隣のB列、C列にコピーしたい。
と言った内容です。

↓例)

A列
○○○@docomo
○○○@docomo
○○○@softbank
○○○@docomo
○○○@ezweb
○○○@ocn
○○○@plala


と言った具合にメールアドレスが入力されておりますが、これを携帯メールとPCメールとに分けたいのです。


【抱えてる問題/困っている事】
A列に含まれる特定の文字を含むセルを隣のB列に表示され...続きを読む

Aベストアンサー

@は含めていない
大文字も抽出
B1:
=IF($A1="","",IF(ISERROR(SEARCH("docomo",$A1)),IF(ISERROR(SEARCH("softbank",$A1)),IF(ISERROR(SEARCH("ezweb",$A1)),"",$A1),$A1),$A1))
C1:
=IF($A1="","",IF($B1="",$A1,""))
以下、まとめてコピー

QExcelで○○を含むという条件にてvlookup処理(比較)できるでしょうか?

説明が難しいのですが、以下のようなAとBの2つのシートがありまして、BシートのA列にある条件がAシートのA列の歯抜の状態で入力されてます。これにBシートのB列に、AシートのB列を表示したいという状況があります。

具体的なイメージは、以下の通りです。

===========================================
Aシート
 A        B
1 山田真太郎 東京
2 鈴木波奈子 名古屋
3 斉藤ミツル 大阪
-------------------------------------------
Bシート
 A  
1 藤ミツ
2 奈子
3 田真太
===========================================


BシートのB列に関数などを利用して以下のように表示させたいです。
==========================================
 A     B
1 藤ミツ 大阪
2 奈子  名古屋
3 田真太 東京
==========================================

このように、「セルにある言葉を含む」という条件にて、Vlookupを使ったような計算式というのを組む事ができるでしょうか?

私が感じているBシートのB1に入れる関数イメージ
=VLOOKUP((*A1*),A!$A$1:$B$3,2)

何か良い方法があればご教授ください。

説明が難しいのですが、以下のようなAとBの2つのシートがありまして、BシートのA列にある条件がAシートのA列の歯抜の状態で入力されてます。これにBシートのB列に、AシートのB列を表示したいという状況があります。

具体的なイメージは、以下の通りです。

===========================================
Aシート
 A        B
1 山田真太郎 東京
2 鈴木波奈子 名古屋
3 斉藤ミツル 大阪
-------------------------------------------
Bシート
 A  
1 藤ミツ
2 奈子
3 田真...続きを読む

Aベストアンサー

NO2です。
因みに=VLOOKUP("*"&A1&"*",A!A:B,2,FALSE)でも可能ですのでお試しください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング