はじめまして。
エクセルが得意な方よろしくお願いします。
文字列を検索して、違うセルにその文字列から置き換えをしたデータを表示させたいです。
例えば
A列に品名が入っています。(りんご、みかん、なし・・・・)
B列にその品名の価格が入っています。(100、200、300・・・・)
C列に品名が型番とともに複数書いてあります。
(りんご-01、みかん-01、りんご-02、なし-01、、、)
C列の文字列を検索して、A列に記載した文字列と適合した場合、D列にB列の価格を表示させる。
このような検索置き換え?はSUBSTUTEで出来そうでしたが、上手くいきません。
説明がなかなか上手く伝えられず申し訳ないです。
おわかりの方、よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
VLOOKUPを使って
検索する値(-NNを切り取って)
LEFT(C1,LEN(C1)-3)
検索する範囲
An:Bm
取り出す列
2
検査の型
FALSE
でやればいいと思います
例:
D1
=VLOOKUP(LEFT(C1,LEN(C1)-3),A1:B20,2,FALSE)
以下コピー
No.2
- 回答日時:
セルD1に
=OFFSET($A$1,MATCH(LEFT(C1,LEN(C1)-3),A:A,0)-1,1,1,1)*VALUE(RIGHT(C1,2))
を代入し、下へドラッグしてください。Cに何も入っていないと「#VALUE」が表示されますが、
これを嫌うのであれば、ISERR関数を使ってさらに条件分岐をしてください。ちなみにこんなに長くなりました。
=IF(ISERR(OFFSET($A$1,MATCH(LEFT(C1,LEN(C1)-3),A:A,0)-1,1,1,1)*VALUE(RIGHT(C1,2))),"",OFFSET($A$1,MATCH(LEFT(C1,LEN(C1)-3),A:A,0)-1,1,1,1)*VALUE(RIGHT(C1,2)))
ちょっと長いですか? よろしければ前半の式について以下数式の説明をしますね。
一応、LEFT(C1,LEN(C1)-3) で、セルC1の「りんご-01」という文字列から「りんご」を取り出しています。
また、VALUE(RIGHT(C1,2)) で、セルC1の「りんご-01」という文字列から数字の「1」を取り出しています。
したがって上の式は
=OFFSET($A$1,MATCH("りんご",A:A,0)-1,1,1,1) * 1
と言い換えられます。最後の「*1」はりんごの数量、前半がりんごの単価を求めています。
MATCH("りんご",A:A,0)
が、A列で「りんご」が何行目にあるかを探す式ですから、例ではセルA1に「りんご」があるので =1 となります。
で、OFFSET($A$1,1-1,1,1,1)と言い換えられます。これは、セルA1から下へ1-0、右へ1ずらした、高さ1、幅1のセルの値ということですので、つまりセルB1の値を指すことになります。
No.3
- 回答日時:
同じシートに 基準となる 価格表 では あとあと 扱いにくいかも。
Sheets("価格表") シート名は基準なので固定
場所は自由 品名の 右に 価格
りんご100
みかん200
データのあるシート("データ") シート名は任意
B列2 C列 ユーザー定義「価格表から価格抽出」設定
りんご-01=価格表から価格抽出(B2)
みかん-05=価格表から価格抽出(B3)
同じシートに 価格表を置いて 参照するなら
Sheets("価格表").Cells.Find(検索品名)
を Range("a:a").Find(検索品名) ・・に変更か
Range("価格表").Find(検索品名) ・・に変更
して 価格表の場所の名前を("価格表")にするなど・・
↓マクロの 標準モジュールに追加↓
Function 価格表から価格抽出(セル)
'セパレータ '半角/全角 ハイフン "-"or "-"
検索品名 = Trim(Split(セル.Value, "-", 2, 1)(0))
If Not Sheets("価格表").Cells.Find(検索品名) Is Nothing Then
価格 = Sheets("価格表").Cells.Find(検索品名).Offset(0, 1).Value '品名の右の価格を取得
Else
価格 = "m(_ _)m" '見つかりません。
End If
価格表から価格抽出 = 価格
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報