【無料配信♪】Renta !全タテコミ作品第1話

まずは添付画像にてご確認ください。

A列目(黄色の網掛け部分)は、原材料の食品名
1行目(緑の網掛け部分)は、チェックしたい項目を指しています。

B2~H3のセルでは、A列に入力した内容が、それぞれB1~H1のチェック項目に
該当する場合は「○」を、該当しない場合には「-」を入力していました。

今までは手入力で何とかなっていたのですが、複数人で管理するようになったため
B2~H3部分を関数処理にて管理することが出来ないかどうかをお聞きしたいのです。

人によって入力の癖が違うので、例えば、「ざるそば、ザル蕎麦」「卵焼き、玉子焼」と
いう形で入力されていても、同じもの「そば」「たまご」として認識させされる方法があるのであれば
教えてもらえないでしょうか。

※今回は表記のゆれ等でも全て認識したいので、1行目に全てまとめて入力していたのですが、
  COUNTIFやSEARCHなどを使用することで複数行必要になるかどうかも教えていただけると
  幸いです。

なお、使用しているバージョンは、EXCEL2003です。
ぜひとも、よろしくお願いします

「EXCEL関数で部分一致同士を検索する方」の質問画像

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

A 回答 (4件)

こんにちは!


表のレイアウトを変えてはダメな場合、VBAになってしまいますが、
一例です。
アップされている画像の配置通りだとして・・・

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)


Sub Sample1() 'この行から
Dim i As Long, j As Long, endRow As Long, endCol As Long, k As Long, myArray
endRow = Cells(Rows.Count, "A").End(xlUp).Row
endCol = Cells(1, Columns.Count).End(xlToLeft).Column
If endRow > 1 And endCol > 1 Then
Range(Cells(2, "B"), Cells(endRow, endCol)).ClearContents
End If
For i = 2 To endRow
For j = 2 To endCol
myArray = Split(Cells(1, j), "、")
For k = 0 To UBound(myArray)
If InStr(Cells(i, "A"), myArray(k)) > 0 Then
Cells(i, j) = "○"
Exit For
Else
Cells(i, j) = "-"
End If
Next k
Cells(i, j).HorizontalAlignment = xlCenter
Next j
Next i
End Sub 'この行まで

表のレイアウトを変更しても良いのであれば、関数でも対応できると思います。
↓の画像のように1行目の項目を各セルに一つずつ分けて入力します。

※ この場合、項目数が一番多い列の行数に合わせ、空白セルができないよう
まずA列に使用されることはないであろう、アスタリクス「*」を入れておきます)

画像ではB5セルに
=IF($A5="","",IF(OR(ISNUMBER(FIND(B$1:B$4,$A5))),"○","-"))

これは配列数式になりますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合は、
上記数式をドラッグ&コピー → B5セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
最後にB5セルを列・行方向にオートフィルでコピー!
これで画像のような感じになります。m(_ _)m
「EXCEL関数で部分一致同士を検索する方」の回答画像2
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

1行目に全ての項目を記入するという方法自体が不安だったこともあり、また、複数で管理するという特性上、全ての人がVBAを使えない事情からも関数で、と思っていました。
その上、スマートな関数で、しかもCOUNTIFを使用した場合の7個という制約も気にすることなく運用できることが分かり安堵しています。
今回のご回答を元に、より精度を高めたリスト作成と運用をしていきます。

上記のことからベストアンサーとさせていただきます。
改めてありがとうございました。

お礼日時:2014/01/13 20:14

 御質問にある様に、チェックしたい項目に該当する文字列が、A列(黄色の網掛け部分)に入力されている原材料の食品名の中に見つかった場合にのみ「○」を、見つからなかった場合には「-」を表示させる、というだけの事でしたら回答No.2様や回答No.3様の方法でも一応は可能です。


 ですが、御質問の件は「アレルギーの原因となり得る食材が使われているのか否かの判定」を自動で行うという事ではないでしょうか?
 その場合、もし、機械に(文字通り)機械的に判定させますと、黄色の網掛け部分に書かれている食材の中に、アレルギーの原因と成り得る原料で作られていながら、緑の網掛け部分に書かれていない食材があった場合には、アレルギーの原因となる食材が使われているにも関わらず「-」が表示されてしまう事になります。
 そして、その様な誤った判定結果が表示されていても、それを見た人間は
「パソコンのリストには○印が無いから大丈夫だな」
と考えてしまい、使われている食材をチェックし直す事を怠る様になってしまう恐れがあります。
 もしも、緑の網掛け部分に入力されている食材のリストが、アレルギーの原因となる全ての食材の名称を、表記のゆれ等も含めて完全に漏らさず網羅しているという事であれば、機械任せでも構わないのですが、現実的にはその様な完璧なリストを作る事は困難です。
 アレルギーの原因となり得る食材のチェックは人命に関わる事なのですから、実際には不完全なリストに対して、完璧なリストであると誤った信頼感を持ち、人間がチェックを怠る様になりかねないシステムを使用する事は危険だと思います。
 そういった意味で、私は回答No.1において「無理だと思います」と述べた訳です。

 例えば、小麦が使われている食材の例を今思いつくままに挙げてみますと、
小麦
こむぎ
コムギ
小麦粉
こむぎ粉
コムギ粉
メリケン粉
めりけん粉
饂飩粉
うどん粉
ウドン粉
唐揚げ粉
唐揚粉
からあげ粉
醤油
しょうゆ
ショウユ
正油
しょう油
ショウ油
味噌
みそ
ミソ



麺麭
パン
ぱん
パスタ
ぱすた
マカロニ
スパゲッティ
スパゲッティー
ラーメン麺
ラーメンの麺
らーめん麺
ラーメン
蕎麦麺
蕎麦の麺
そば麺
ソバ麺
素麺
ソーメン
そーめん
そうめん
ソウメン
餃子
ぎょうざ
ギョウザ
カステラ
かすてら
スポンジ(ケーキ等の)
等々があり、上記にあげたもの以外にもまだまだ沢山あります。
 又、例えば、黄色の網掛け部分に記入されている食材の中に「調味料」というものがあった場合、その調味料が味噌や醤油であった場合には、小麦の所を「○」としなければなりませんが、味噌や醤油ではなくマヨネーズであった場合には小麦の所は「○」ではなく「-」とし、代わりに卵の所を「○」としなければなりませんが、その様な判断を機械が出来る訳がありません。
 同様に、「タンパク加水分解物」や「アミノ酸」の場合も、化学的に分解されたものとはいえ、分解し切れななかったタンパク質が残っていないとは限りませんから、その「タンパク加水分解物」や「アミノ酸」の原料として小麦等が使われていないかどうかを確認する必要があります。
 そのため、機械任せにはせず、どうしても人間がチェックする必要があると思います。
    • good
    • 0
この回答へのお礼

No.1とNo.4でのご回答ありがとうございます。

もちろん、ご指摘の件はその通りです。
表記のゆれを含めて100%網羅できるリストを作ることは不可能ということも承知しており、二重三重のチェックが必要であることも承知しています。
その上で、まずは作業の第一段階として想定しうる全ての食材を判別し、その上で、第二段階として漏れや抜け、微妙なものがあった場合は、関数ではなく直接「○」「-」をセルに打ち込むという流れを採りいれています。さらに複数人によるチェックも経ています。
だからといって、これで完璧ということも無く、「これはあくまで100%完璧なリストではない」ということも念頭に入れた上で運用するものです。

※ここまでを書いた上で質問をすればよかったですね、申し訳ありません。また当初は「-」ではなく「×」の予定でしたが、回答者様のような意見もあったうえで、「-」にしていることも補足しておきます。

上記のことから、まず第1段階のリスト作成を省力化したくて質問させていただいたことをご理解いただければと思います。そのため、あえてアレルギーということは伏せていたのですが、このような形で改めて認識をさせていただきましたこと、改めてお礼させていただきます。

お礼日時:2014/01/13 20:00

>※今回は表記のゆれ等でも全て認識したいので、1行目に全てまとめて入力していたのですが、COUNTIFやSEARCHなどを使用することで複数行必要になるかどうかも教えていただけると幸いです。


1行目に対象品目を全て纏めるとCOUNTIF関数で処理するのは難しいようです。
代案として対象品目を1品1セルにすればCOUNTIF関数の加算で判定できます。

=IF(COUNTIF($A6,"*"&B$1&"*")+COUNTIF($A6,"*"&B$2&"*")+COUNTIF($A6,"*"&B$3&"*")+COUNTIF($A6,"*"&B$4&"*")+COUNTIF($A6,"*"&B$5&"*"),"○","-")
「EXCEL関数で部分一致同士を検索する方」の回答画像3
    • good
    • 0
この回答へのお礼

COUNTIFを使った形でのご解答ありがとうございました。

やはり1行目に全ての食材をまとめるという方法がよくなかったみたいですね。
そこで取り掛かってみたのですが、COUNTIFでは8項目以上ではうまく行かないこともあるみたいです(No.4の回答者様のご指摘も踏まえ)。

それでも、方法としてこのようなやり方があるということを勉強させていただきました。ありがとうございました。

お礼日時:2014/01/13 20:08

>人によって入力の癖が違うので、例えば、「ざるそば、ザル蕎麦」「卵焼き、玉子焼」という形で入力されていても、同じもの「そば」「たまご」として認識させされる方法があるのであれば教えてもらえないでしょうか。



 蟹が使用されていない「カニカマ」、小麦が使用されていない「パンプキン」や「パンナコッタ」、蕎麦の実が使用されていない「やきそば」、乳製品ではない「豆乳」や「ココナッツミルク」、
小麦が使用されていながら「小麦」の文字が無い「うどん」、「そば」、「やきそば」、「ラーメン」、「餃子」、「焼売」、「ビスケット」、「クッキー」、「カステラ」等々、卵が使用されていながら「卵」の文字が無い「プリン」、「出汁巻き」、「マヨネーズ」、「カステラ」等々、牛乳が使用されていながら「乳」の文字が無い「バター」、「チーズ」、「アイス」、「カフェオレ」、等々、
といった様なパターンが多数存在しますので、無理だと思います。
    • good
    • 0

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

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

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

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

QExcelで文字列の中から部分一致したものを抽出

エクセルで特定の文字を含むセルを抽出する方法を探しています。

A列に元データ、C列に検索条件があります。
C列の条件に一部でも一致するデータを抽出したいです。(結果イメージを添付します)

可能であれば、関数で対応したいです。

どなたかお分かりになる方いらっしゃいましたら、
教えていただけないでしょうか?

よろしくお願いいたします。

Aベストアンサー

こんにちは!
A列は当然文字列だと思いますが、C列の日付セルがシリアル値だと厄介です。
とりあえずC列の日付セルは「文字列」だという前提での一例です。

画像の配置ではB2セルに
=IF(OR(ISNUMBER(FIND(C$2:C$6,A2))),"○","")
これは配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → B2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後の{ }マークが入り配列数式になります。
これをフィルハンドルで下へコピーしてみてください。

※ 検索データ(C列データ)が増える場合は元データにまず使うことはないであろうと思われる
「*」(アスタリクス等の文字、#のような文字でも構いません)を入力しておき、数式内の
>C$2:C$6
部分の範囲を広げておきます。
そして検索データが増えた場合はアスタリクスの代わりに検索文字列を入力します。
(空白セルは範囲指定しないようにするためです)

※ C列日付データがシリアル値の場合、別の方法を考える必要があります。m(_ _)m

こんにちは!
A列は当然文字列だと思いますが、C列の日付セルがシリアル値だと厄介です。
とりあえずC列の日付セルは「文字列」だという前提での一例です。

画像の配置ではB2セルに
=IF(OR(ISNUMBER(FIND(C$2:C$6,A2))),"○","")
これは配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → B2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後の{ }マークが...続きを読む

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

QExcel データを部分一致で抽出して表示したい (関数 または VBA)

まずは下のサンプルデータを見ながら本文を読んでください。

Excelの関数(lookup か vlookup) か VBAを利用して、
Sheet2のセルA列にデータを自動的に表示したい と思っています。

Sheet2のセルA列に表示したいデータは、Sheet1のセルAの情報です。

例えば、Sheet2のセルB1が「静岡県」の場合は、「営業2部」という文字が
Sheet2のセルA1に表示されるようにしたいと思っています。

つまり、Sheet1のセルB が Sheet2のセルB の内容と
部分一致した場合に、Sheet2のセルA列に 該当データ(Sheet1のセルA)を
抽出して表示するということをやりたいと考えています。

どうぞよろしくお願い致します。


サンプルデータ

◆Sheet1 参照元となる表

___|___セルA___|________セルB
----------------------------
1 | 営業1部 | 東京都千代田区
----------------------------
2 | 営業2部 | 静岡県
----------------------------
3 | 営業2部 | 山梨県
----------------------------
4 | 営業3部 | 東京都渋谷区
----------------------------
5 | 流通1部 | 神奈川県
----------------------------



◆Sheet2 データを埋めたい表

___|____セルA_____|_______セルB
----------------------------
1 |________________| 静岡県富士市大淵 24
----------------------------
2 |________________| 東京都千代田区丸の内1-8
----------------------------
3 |________________| 大阪府大阪市中央区南船場1―15
----------------------------
4 |________________| 神奈川県横浜市
----------------------------
5 |________________| ※以下 セルBには500件ほどの都道府県データあり。
6
7

まずは下のサンプルデータを見ながら本文を読んでください。

Excelの関数(lookup か vlookup) か VBAを利用して、
Sheet2のセルA列にデータを自動的に表示したい と思っています。

Sheet2のセルA列に表示したいデータは、Sheet1のセルAの情報です。

例えば、Sheet2のセルB1が「静岡県」の場合は、「営業2部」という文字が
Sheet2のセルA1に表示されるようにしたいと思っています。

つまり、Sheet1のセルB が Sheet2のセルB の内容と
部分一致した場合に、Sheet2のセルA列に 該当データ(Sheet1...続きを読む

Aベストアンサー

#3の最後の部分を訂正です。

>となっていると、5行目の「神奈川」を探し出し「流通1部」が返ることになります。

正しくは、探し出せずに何も返らない、です、失礼しました。

Q部分一致の対象を表から抽出する方法

Excel2013 での文字列部分一致について、お知恵をいただけませんでしょうか。

[目的]
添付画像のような表1、表2があり
表1の「文字列」を見て、表2の「言語」が部分一致すればその「言語番号」を
表1の「言語番号」に反映するようなものを関数を使用して実現したい。

[補足]
実際は表1の行は大量にあり、表2の行は数行しかありません。

なかなかよい方法が見つからずお知恵をお持ちの方、ご教示いただけませんでしょうか。

Aベストアンサー

B2以下に表1の言葉

E2からE4に表2の言葉,日本語等
F2からF4に表2の数字,1,2,3

がそれぞれ記入してあるとして

C2には
=SUMPRODUCT(ISNUMBER(FIND(E$2:E$4,B2))*F$2:F$4)
と記入,更にセルの書式設定の表示形式のユーザー定義で
#
と設定,以下コピー。

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複数の文字列のいずれかが含まれていたらTRUEを返す関数について

複数の文字列のいずれかが含まれていたらTRUEを返す関数について
エクセル2003を使用しています。
B列に例えば住所が入力されていて、「東京都北区」「千代田区」「東村山市」等いくつかの文字列のいずれかが含まれていたら、A列にTRUEを返すということをしたいのですが方法がわかりません。
単純なことのような気がするのですがどうしても思いつきません。よろしくお願いいたします。

Aベストアンサー

こうかなあ。。。
A2セル
=OR(SUBSTITUTE(B2,$D$2:$D$4,"",1)<>B2)
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
下へオートフィル

D2:D4に文字列を入力しておく

Q【Excel】 部分一致検索の関数

B列の文字列に「部分一致」する、A列のデータが「いくつあるか」をC列に表示させ、D列にはそれを表示させたいです。
vlookup関数のtrueやdcount関数を使ってみましたが、うまくできません…

どなたかお知恵をお貸しくださいませ。。宜しくお願いします。


 A  B C D
1煮豚 煮 2 煮豚、煮牛
2包豚 焼 1 焼豚
3煮牛 揚 0 
4焼牛 蒸 0
5包鶏 生 0

Aベストアンサー

こんにちは~

該当するのが複数あったとき、D列の 1つのセルに「煮豚、煮牛」とまとめるのは絶対条件ですか?
YESならこの回答はこの時点でスルーしてください (T_T)/~~~

D列に煮豚、E列に煮牛‥と1つのセルに1個ずつ入れてもいいよ、という広~いココロをお持ちなら、次の方法を試してみてください。

◆ A列は、A1:A100の範囲内にデータがあるとします。

C1セル( これはカンタン )
----------------------------------
=IF(B1="","",COUNTIF($A$1:$A$100,"*"&B1&"*"))
----------------------------------
と入れて、B列のデータ最終行までフィルコピー。

D列以降ですが‥
■方法その1
D1セル
----------------------------------
=IF(OR($C1="",$C1<COLUMN(A1)),"",INDEX($A:$A,100-LARGE(INDEX(ISNUMBER(FIND($B1,$A$1:$A$100))*100-ROW($A$1:$A$100),0),COLUMN(A1))))
----------------------------------
な、長っ!て思いました?
↑の式をそのままエクセルにコピー&ペースト。
貼り付けるときは、D1セルを右クリック~形式を選択して貼り付け~テキストの方がいいかも、です。
そのあと必要なだけ右にフィルコピー( 該当するのが最大5つなら H1セルまで )
そのまますべて B列のデータ最終行まで下にフィルコピー。
A列のデータが 100を超えるなら、数式の 100をすべて修正してください。
100-LARGE と 100-ROW の 100も A列の最終行数に合わせてください。

あんまり範囲を広げすぎると処理が重くなるかもしれません。
COLUMN(A1) の A1は変更しないでください。元データが A列以外でも A1のまま。
(↑D1セルのみ。あとは右に下にコピーするだけでOK )


■方法その2
D1セル
----------------------------------
=IF(OR(C1="",C1<1),"",VLOOKUP("*"&B1&"*",$A$1:$A$100,1,FALSE))
----------------------------------

E1セル
----------------------------------
=IF(OR($C1="",$C1<COLUMN(B1)),"",VLOOKUP("*"&$B1&"*",INDEX($A$1:$A$100,MATCH(D1,$A$1:$A$100,0)+1):$A$100,1,FALSE))
----------------------------------
E1の式を必要なだけ右にフィルコピー。
D1の式も含めて、すべてB列データ最終行まで下にフィルコピー。

これも範囲は適宜修正を。
COLUMN(B1) の B1は変更しないでください。検索キーワードが B列でなくても B1のまま。
( ↑E1セルのみ。あとは右に下にコピーするだけでOK )

方法その2は、A列に同じ名前のものはないことが前提になります。
*
少量のデータでしか検証していませんが、一応どちらの方法でもうまくいきました。
とりあえず試してみてくださいっ (^^)/

こんにちは~

該当するのが複数あったとき、D列の 1つのセルに「煮豚、煮牛」とまとめるのは絶対条件ですか?
YESならこの回答はこの時点でスルーしてください (T_T)/~~~

D列に煮豚、E列に煮牛‥と1つのセルに1個ずつ入れてもいいよ、という広~いココロをお持ちなら、次の方法を試してみてください。

◆ A列は、A1:A100の範囲内にデータがあるとします。

C1セル( これはカンタン )
----------------------------------
=IF(B1="","",COUNTIF($A$1:$A$100,"*"&B1&"*"))
-----------------------...続きを読む

Q文字列の一部比較について

エクセルで地区コードと住所の比較をしたいのですが
=IF(EXACT(B2,C2),"同じ","違う")
例の様なセルB2とセルC2(一部)の比較はできるのでしょうか?
教えてください。

    B       C             D 
1  地区コード   住所
2   市原市    千葉県市原市八幡     同じ
3   中央区    千葉県千葉市中央区    同じ
4   東京都    東京都墨田区       同じ
5   市原市    千葉県千葉市稲毛区    違う

Aベストアンサー

2行目の例ですと、

「千葉県市原市八幡」の中から、「市原市」を検索します。
=FIND(B2,C2)

C2にB2が含まれているのなら、何文字目かが返ってきます。
そうでない場合、#VALUEが返されます。

返り値が数字かどうかをISNUMBER関数で確認すれば良いかと。

=IF(ISNUMBER(FIND(B2,C2)),"同じ","違う")

とか。

Qエクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードの

エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードのID番号を返す、という関数式を知りたいです。

A列    
東京都春日部区   
神奈川県松戸町
千葉県霞ヶ関
埼玉県錦糸町
東京都千代田区
千葉県小松菜


キーワード郡
東京 1
千葉 2
埼玉 3
神奈川 4

↓↓↓結果↓↓↓

A列    
東京都春日部区     1  
神奈川県松戸町     4
千葉県霞ヶ関      2
埼玉県錦糸町      3
東京都千代田区     1
千葉県小松菜      2

といった具合です。

お分かりになる方いらっしゃいますでしょうか?

Aベストアンサー

A1から住所
D1:D4にキーワード
E1:E4に値として


そのサンプルにおける簡単な計算方法:
=VLOOKUP(LEFT(A1,2)&"*",D:E,2,FALSE)

もうちょっと一般化した計算方法:
=INDEX(E:E,MIN(IF(ISNUMBER(FIND($D$1:$D$5&"",A1)),ROW($D$1:$D$5))))
と記入してCtrl+Shift+Enterで入力。 ($D$5は間違いではないので注意)

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ランキング