次のようなリストがあります。
A1 トヨタボクシー
A2 トヨタ ヴォクシー
A3 ホンダ ステップワゴン
A4 本田フィット
A5 アコード
A6 スズキアルト
A7 ワゴンR
A8 日産スカイライン
A9 ニッサンプレセア
このリストから、抽出条件のリスト
トヨタ
ホンダ
本田
スズキ
鈴木
ダイハツ
・・・
を使って、メーカー名を抽出したいのですが、どのような方法があるでしょうか?
抽出元のリストには、メーカー名が入っていたりいなかったり、漢字であったりカナであったりと統一性がありません。そのリストから、「日産~」「ニッサン~」と入力されているものは、「ニッサン」として抽出したいのです。
しかも、抽出した残りの、社名「ニッサンスカイライン」の「スカイライン」を、「日産プレセア」の「プレセア」の部分をついでに抽出したいのです。
ご存じの方、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
◆Sheet1
A B C
1 トヨタボクシー トヨタ ボクシー
2 トヨタ ヴォクシー トヨタ ヴォクシー
3 ホンダ ステップワゴン ホンダ ステップワゴン
3 本田フィット ホンダ フィット
4 アコード #N/A #N/A
5 スズキアルト スズキ アルト
6 ワゴンR #N/A #N/A
7 日産スカイライン ニッサン スカイライン
8 ニッサンプレセア ニッサン プレセア
◆Sheet2
A B
1 トヨタ トヨタ
2 ホンダ ホンダ
3 本田 ホンダ
5 スズキ スズキ
6 鈴木 スズキ
7 ダイハツ ダイハツ
8 日産 ニッサン
9 ニッサン ニッサン
1)Sheet2にB列に統一メーカー名を入力します
2)Sheet1のB1の式
B1=LOOKUP(1,0/FIND(Sheet2!$A$1:$A$8,A1),Sheet2!$B$1:$B$8)
★下にコピー
C1=TRIM(SUBSTITUTE(A1,LOOKUP(1,0/FIND(Sheet2!$A$1:$A$8,A1),Sheet2!$A$1:$A$8),))
★下にコピー
3)ただし、メーカー名のないものは、エラーになります
お礼が遅くなりました。
教えていただいたとおりで見事にできました。しかし、lookup(1,0~の式の「1、0」のところの意味が分からず、長い間悩んでおりました。もしよろしければ、lookupとfindの間の数字が表すところの意味を教えていただけますでしょうか。
No.4
- 回答日時:
これは仮の例ですか。
まずVBAででもやらないと複雑になると思う。
まず4つのやらなければならないことがある。
(1)表記の統一
日産ー>ニッサン、スカイラインー>プレセアの類
別列作業列ににSUBSTITUTE関数で右辺の文字に変換
間のスペースも置換操作でなくす。
(2)抽出メーカー名の入力
どういう形式で抜き出したものをシートに表示したいのか
質問に出さないと、質問にならない。
(3)抽出
関数でやりたいのかな。およその方法で、質問に明記すべし。
VBAとかある。
(4)作表
関数でやる場合は(3)と一体だが、作表が必要。
ーーー
この課題に対し。、質問者はどれほど勉強しましたか。どこでつまずいたのか。何も書いてない。○投げの類です。
ーー
ホンダは2行以上に出てくるわけだが、MATCHやVLOOKUP関数は最初のものしかヒットしない。
ですから複数該当抜き出しは非常に技巧的な手法が必要。
それにホンダなどの文字列が分離されていないのが痛い。
トヨタニッサンといった2社名が含まれる社名は無いものとする。
ーー
社名ー車種 分離方法の例
例データA2:A4 スペースはなしに統一して後に下記を考える
ホンダフィット
トヨタボクシ
ニッサンティーダ
ーー
G2:G4 社名一覧(分離用)
トヨタ
ニッサン
ホンダ
ーー
ユーザー関数
作り方は
http://www.excel.studio-kazu.jp/mag2/backnumber/ …
などにあります。 WEB照会 「エルセル ユーザー関数」で。
Function fnd(a, b)
Dim cl As Range
For Each cl In b
p = InStr(a, cl)
If p <> 0 Then
fnd = Len(cl)
Exit Function
Else
End If
Next
fnd = "NF"
End Function
ーー
C2セルに
=MID(A2,1,fnd(A2,$G$2:$G$4))
と入れてC4まで式を複写
D2セルに
=MID(A2,fnd(A2,$G$2:$G$4)+1,LEN(A2)-fnd(A2,$G$2:$G$4))
と入れてD4まで式複写
結果C2:D4
ホンダフィット
トヨタボクシ
ニッサンティーダ
ーー
後は上記C列で並べ替えするなりして、者別ー車種名を知ってください。
ーー
その後
ちょっと変わったやり方で例示してみる。
例データ A1:B
A列 B列 (A列のfとB列のfは関係ありません。
例作成手抜きのため使っただけ)
社名車種
ax
sd
dw
fs
ax
de
fg
wq
sf
sd
ay
dw
sy
データーピボットテーブル・・
レイアウトのボタンを押したところで
行ー>社名 列ー>車種 データー>車種
ーー
出来上がった表
データの個数 / 車種車種
社名defgqswxy総計
a213
d123
f112
s2114
w11
総計21111122213
これでA列に社名、第4行に車種名が出て表に出てきた頻度がわかる。
ーー
関数でやりたければ、2条件の検索になる
この回答への補足
大変詳細なご回答をありがとうございました。○投げですみません。どのような方法があるのか広く知りたかったので。
かなり難しそうですが、がんばってやってみます。結果はまたいれさせていただきますが、取り急ぎお礼まで。
No.1
- 回答日時:
>抽出元のリストには、メーカー名が入っていたりいなかったり、漢字であったりカナであったりと統一性がありません。
統一性のない場合、まず統一することから始めた方がいいのでは?
自動車メーカーなんて10社も無いと思うので、
そんなに大した作業にはならないと思います。
しかし、社名が入っていない車に関しては、
車に疎い私には車名を聞いてもどこのメーカーの車か分からないので、
どうしようもありません。
統一させる1つの案として、編集 → 置換 より、
検索する文字列に 日産
置換え後の文字列に ニッサン
と、入れれば漢字の日産をニッサンに変えることが出来ます。
これを何度か行って会社名を統一していけば、
オートフィルタを使って、
オプションより”ニッサン” ”で始まる”
とすれば、ニッサンの車が抽出できます。
これを別のセル等にコピーして、
置換より、
検索する文字列に ニッサン
置換え後の文字列に 『空白』 ← 無入力
とすれば、会社名を消す事が出来ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Excel(エクセル) エクセルの関数を教えてください。② 9 2023/05/25 15:28
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) エクセルVLOOK関数について 3 2022/07/05 08:45
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報