• 締切済み

特定の文字列を判別して表示する方法

仕事を円滑に進めるためにエクセルを使っているのですが、 うまく使いこなせず困っています。 エクセルにさせたい作業は、 「コードを入力すると、それに応じて場所の情報(表1.赤塗り)を返す」とういう作業をさせたいです。 表1を完成することが目標です。 日付・名前・製品・コード欄を入力すると、コードに従って場所の情報を返したいのですがうまくいきません。 作業列を用いて、コードの列からLEFT関数で3文字抜き出し、それを表2にしたがって判定させようと思ったのですが、 そのような関数が見つかりません。 IMOGASI方式というのも、調べた限りでは要求する使い方ができません。 自分以外の誰でもが使えるようにしたいので、 「コード入力」→「フィルタの設定」→「範囲指定/検索条件の指定」→… など、人間が行う操作は増やしたくありません。 コードの桁数は決まっているので、コードを入力した時点でなにもせずとも場所の情報を返ってくるようにしたいのですが、 そのような方法はありますでしょうか? シートは複数使っても構いません。作業列を用いても問題ありません。 このような条件で、うまく場所を返すようにできないでしょうか? よろしくお願いします。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>このような条件で、うまく場所を返すようにできないでしょうか? Excel 2007以降のバージョンでは回答No.1で十分です。 Excel 2003以前のバージョンでも使える数式は次のようになります。 F3=IF(COUNTIF(I:I,LEFT(E3,3))>0,VLOOKUP(LEFT(E3,3),I:J,2,FALSE),"該当なし") または次の式でも良いでしょう。 F3=IF(ISERROR(MATCH(LEFT(E3,3),I:I,0)),"該当なし",INDEX(J:J,MATCH(LEFT(E3,3),I:I,0),1)) ご提示範囲のデータでは検索に失敗するセルもありますので検索に失敗したとき「該当なし」と表示して手入力の誤りを確認できるようにしました。 貼付画像はExcel 2013で検証した結果です。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

表2のコードは文字列なんでしょうか?数値を書式で3ケタに表示しているだけなんでしょうか? #左詰めになっているから文字列かな? それによって処理が変わります。 文字列の場合 F3に =IFERROR(VLOOKUP(LEFT(E3,3),I:J,2,FALSE),"") 数値の場合 F3に =IFERROR(VLOOKUP(1*LEFT(E3,3),I:J,2,FALSE),"")

関連するQ&A

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • エクセルの表で特定の列を表示する方法

    お世話になります。 エクセル2007を利用しています。 エクセルの表で条件を満たした時、その列を表示させる方法はないか?と 困っています。 例えは、条件を入力する作業セルを決めて、行7に5キロと入力があれば、 そのセルへ”5”と入力すると、5キロと入力されている列だけを表示させる、 といった具合です。 過去からのデータも残したいと思っており、複数の人が横へ横へ データを更新していくため、非表示では、(ctrlでまとめて選んでも) 時間がかかってしまいます。 また、必要な列を表示していなかったり、不要な表示していたりと ミスが多くなっています。 どなたか、詳しい方ご教示頂けましたら助かります。 宜しくお願いいたします。

  • EXCEL文字列操作

    いつもお世話になっています。 EXCELの文字列操作に関してですが、右から任意の文字を表示させないことは可能でしょうか? 右から2文字を表示させない場合 1000 → 10 100  → 1 2001 → 20 5556 → 55 桁数が同じならLEFT関数で対応できるのですが、桁数が違うので上手くいきません。 ご教授願います。

  • 文字列を取り出す

    A列に[ No.××× ] あああああ・・・と入力されています。 毎回入力される行数が違います(100~300行) B列にNo.×××という文字列だけ取り出すために下記の関数が入っているのですが A列に入力のあった分だけをマクロで処理できませんか。 =LEFT(RIGHT(A2,LEN(A2)-FIND("[ No",A2,1)),8) 現在は300行目までこの関数が入った状態で、エクセルが重い気がします。

  • excelで、特定の文字のところで2列に分けて表示したい

    1つの列に「会社名△名前」のように、2つの情報が△で区切られて入力されています。これを、1列目=会社名、2列目=名前のように2列に分けて表示させる関数はあるのでしょうか?あったら教えてください。

  • エクセル関数で文字列か数値かを判断する

    エクセルの関数で指定した場所のデータが文字列か数値かを判断させることは可能でしょうか? 可能な場合、それをIFとからめて「文字列だったら○○」「数値だったら○○」という条件をつけて処理をしたいのですが。 よろしくお願いします。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • EXCELで文字列の中から特定の数値を取り出したい

    教えてください。EXCELの関数で例えばA列に "www.abc.jp/1/a/1.html" "www.abc.jp/11/a/23.html" "www.abc.jp/110/a/24.html" "www.abc.jp/121/a/122.html" という文字列が合った場合.htmlの直前の数値だけ取り出したい場合どのような関数を使いますか? (数値の桁数は固定ではありません。)

  • VBAで文字列検索の方法

    エクセルで実現したいVBAです。 セル内に入力されている文字列に任意の文字が含まれているかどうかを判定したいのです。 例えば, 「特別値引対応商品」と入力されているセルに 「値引」という文字が含まれているかどうか のチェックをしたいのです。 検索する文字列(上記の場合なら「値引」)は固定でかまわないのですが,どのようにすれば実現できるでしょうか。 関数を探してみたのですが,ないように思います・・・。

  • Excel:列中に特定の文字列を表示するセルが出たらBeep音を鳴らす

    商品の品番の確認作業にエクセルを使っています。 作業の効率化にエクセルVBAを使いたいのですが、うまくいきません。 具体的な使用目的は以下の通りです。  納品された商品には製造メーカーのバーコードがついています。それをエクセルに読み込んで予定通りの商品であるか確認作業を行います。  まず、エクセルシートのA列にメーカーコードを入力しておきます、B列のセルをアクティブにした状態でメーカーのバーコードを読み取ります。するとセルにメーカーコードが自動入力されます。この文字列がA列の文字列と一致した場合にはC列のセルにOKの文字が出るように設定しています。コードが一致しない場合はNGが出ます。  現在はOKかNGかを目で確認しているのですが、商品数が多いので、NGの場合にBeep音が出るようになっていれば作業が早くなります。  過去の質問例を調べて、VBAのAMI関数を使うとBeep音を鳴らせることはわかりました。たとえば、セルC1にNGと表示された場合にBeep音を鳴らす、というところまではできたのですが、列CのいずれかのセルにNGと表示された場合にBeep音を鳴らす、という設定ができません。  わかる方アドバイスお願いします。  ちなみに、セルC1にNGと表示された場合にBeep音を鳴らすには以下のように設定しました。 標準モジュール Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long シートのモジュール Private Sub Worksheet_Change(ByVal Target As Range) If Range("C1") = "NG" Then Call Beep(2000, 500) End If End Sub

専門家に質問してみよう