• ベストアンサー

エクセルの関数で抽出するには

例えば、四字熟語を200件くらい登録して、その中から条件に一致した物だけを抽出したいと思います。 漢字の「一」だけを入力したら、登録してある200件くらいの範囲から四字の中のどの位置に「一」があったとしても、すべて抽出してくれるように関数を使って作成するにはどのような関数を使用し、どのように作成すればいいのでしょうか? 迷っています・・お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

作業列なし、作業列2の回答が出ました。1つ使う例を上げます (例)Sheet1で A2:B6 A列  B列(関数の結果) 一気呵成 1 一日千秋 2 大器晩成 君子豹変 一挙両得 3 B2に=IF(NOT(ISERROR(FIND("一",A2))),MAX($B$1:B1)+1,"") と入れて、B6まで式を複写する。結果上記の通り。 やったことは、一を含む行に連番を振りました。 Sheet2に B2に =INDEX(Sheet1!$A$2:$A$6,MATCH(ROW()-1,Sheet1!$B$2:$B$6,0),0) と入れてB5まで式を複写。 やったことは、Sheet1の連番とSheet2の行を関連付けて、Sheet1のデータを採ってきました。 結果 一気呵成 一日千秋 一挙両得 自称imogasi方式。他の類似質問で同様の回答を沢山しています。 式が、作業列なしの方式に比べ、デメリットはあるが、判りやすいのではと思います。

wave1993
質問者

お礼

ナイスですね!さっそくチャレンジしてみました。 感動です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • Poer
  • ベストアンサー率45% (72/157)
回答No.6

 もしかするとこれまでのご回答ですでに解決されていて、単なる余計なおせっかいかもしれませんが、私がかつて独自に考えたやり方です。作業列を2つ作らないといけないのが難点ですが...。  C列に(C2から)四字熟語のデータがあるとして、   (1)A2に =IF(ISERR(FIND($D$1,C2)),"",1)   (2)B2に =SUM(A$2:A2)   (3)D2に =IF(ISERROR(VLOOKUP(ROW(A1),B:C,2,0)),"",VLOOKUP(ROW(A1),B:C,2,0))   (4)A2、B2、D2それぞれを四字熟語の最下行と同じ行数まで下方にコピー。   (5)A列、B列の列の幅を0(ゼロ)にして列を隠す。 →D1に検索対象のデータを入力すると、D2以下に抽出されます。  以上、ご参考までにお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

#2のmshr1962です。 関数での例 A列に四字熟語、E1を検索文字としてB列に B2=NOT(ISERR(FIND($E$1,A2)))*ROW() で行数が表示されます。 E2=IF(ROW()<=COUNT($B:$B),INDEX($A:$A,SMALL($B:$B,ROW()-1),1)) としてB2とE2を下方(200行?)にコピーしてください。 E1に入力した内容でE2以降に四字熟語がセットされます。

wave1993
質問者

お礼

ありがとうございます。 思った通りのものができそうです。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.4

[検索条件範囲]に式 =NOT(ISERROR(FIND("一",B4))) を入力した[フィルタオプションの設定]で、同シートまたは別シートに(隙間なく)抽出する手もあります。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

No2さんのが正解だと思いますが、どうしても関数で全て検索したいなら、 仮にA列にデータが並んでるとして B列に=IF(ISERROR(FIND("一",A1,1)),"",A1)として下までコピーすれば該当のものだけB列に抽出されますが・・・・。

wave1993
質問者

お礼

この関数を応用して、いろいろチャレンジしてみます。 B列に並んだ物を、C列にまとめて、B列を非表示してしまえればいいのですが・・・

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

縦一列に入れてるなら、「データ」「フィルタ」「オートフィルタ」を設定 1行目にでてくる▼をクリックして、オプションを選択します。 「一」「を含む」でOKすればご希望の通りですが...

wave1993
質問者

お礼

ありがとうございます。 たしかにオートフィルタでは簡単なんですが、関数でなんとかしたいと思います。2重3重の手間がかかっても、最終的に抽出できるようにチャレンジします。

全文を見る
すると、全ての回答が全文表示されます。
  • akio_myau
  • ベストアンサー率34% (515/1480)
回答No.1

抽出というのは関数では向いていません。 このような場合にはツールメニューのオートフィルタを利用して法がよいのではないでしょうか。

wave1993
質問者

お礼

早速の回答ありがとうございます。 なるべくオートフィルタは使用したくないので、関数でなんとかしてみたいのです・・・いろいろチャレンジしてみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELのDCOUNTA関数について

    EXCELで500名程度の名簿管理をしています。 DCOUTA関数を使って、「○○区に住んでいる女性の人数」等の抽出を行っていますが、下記のような不具合があります。 ・同じファイルに名簿シートと抽出シートを分けていますが、抽出シートで計算された数字が名簿シートの実数と一致しません。 (名簿シートの実数は手計算しました。) ↓ ・名簿シートに抽出シートと同じ抽出表をコピーしたところ、実数と一致しました。 ただ、上記のようだと、名簿シートに抽出表も貼りつけることになり、大変見にくいので、シートを分けてもきちんと結果が出るようにしたいのですが、どうしたらよいでしょうか。 なお、範囲名は漢字で「登録者」としています。 ご教授よろしくお願いします。

  • エクセルの関数などを使って図の抽出はできるのか?

    関数などを使って、別シートにある図を任意の箇所に抽出することって可能なのでしょうか? 支店名を入力することによって、別シートに、項目ごとに作成したリストに登録されている支店の情報(住所・電話番号、支店の設備状況、売上など)の中から必要な情報を関数のVLOOKUPやMATCHとINDEXの組み合わせなどを使って、フォームに抽出するようにしました。さらに支店の所在地を示す図(エクセルのオートシェイプ機能などで作成した)をフォームに抽出したいのですが、「支店名」などのキーワードを打ち込むことでその支店の見取図などの図を任意の場所に抽出させる関数もしくは適当な方法はあるのでしょうか? 支店が多数あるのですが、エクセルのオートシェイプ機能で作られた簡単な見取図が既にあるため、それを利用したいのです。よろしくお願いします。

  • エクセル関数について

    エクセルでデータベースを作っています。別のシートからデータを抽出して合計を出すというものなのですが、どうも関数がうまくいきません。 別のシートには日付・現場名・費目・時間・金額などが入力されています。(オートフィルタが使われていました)そしてデータベースには現場名と費目から金額の合計を抽出したいのですが、どんな関数を使っていいのか分かりません。 =SUMPRODUCT((条件1)*(条件2)*....(集計する数値)) =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1)*(入力!$K$3:$K$9810)) というものを使っていたのですが、別シートのデータが入力されていない所まで範囲を指定するとエラーになってしまいます。 =sumifだとエラーにならないのですが、私の技術では1つの条件(現場名だけ)しか抽出、合計できません。 入力されていない所を範囲指定してもエラーにならなくて上の事が出来る関数はないでしょうか、よろしくおねがいします。

  • エクセル関数でデーターを抽出する数式について

    検索値の名称と抽出表の一覧から名称が一部しか一致しないものを抽出したいが、セルの位置がわからない。 一応私が考えてた数式ではダメでしたが、参考まで VKOOLUP(B1.A10・・・.1.TRUE) 例 上記の数式を入力したセルを(A1)、入力するセルを(B1)、抽出表の一覧A10・・・以下に作成する。 A1 ○○   B1 ○○ 支店 A10 ○○ A11 △△ A12 ×× ・ ・ ・ ・

  • エクセルの抽出関数について

    簡単なエクセルで月次試算表を作成しています。 ・・・・ 〇月〇日 鉛筆購入100円/現金支払100円 〇月△日 電話代3000円/預金から支払3000円       ・・・こんなかたちで作成しています。 こんな形で作成しているんですが、別なシートにこの「現金支払」のもの(勘定科目)だけを抽出した表(台帳)を作成したいのです。 エクセルにはオートフィルタ機能があるのは知っているのですが、これだと元本となる表(データ)をじかに加工しちゃうようなので、あまりこの機能は使いたくありません。できれば、条件式を入力して作成できるエクセル関数を使いたいのですが、そのような関数ってありますか?あれば、それを教えていただきたいのです。 手元にエクセルの参考になる書籍もなくて困ってます。 アドバイスのほど、よろしくお願いします。なお、エクセル2000を使用しています。  

  • エクセルの関数の保護と入力

    こんにちは。 エクセル2003で表を作成中です。 普通に関数を保護するとゆうのは理解して、入力できないように保護できるのですが、そのセルに=IF(条件一致じゃなければ、””、関数)としてあるのですが、条件一致じゃなければ、入力したい訳です。ですが、もともと入っている関数は間違って消されては困るので、保護したいのです。でも保護したら当然入力ができない訳ですよね~。数式を保護しながら入力したい時にはできるなんて、都合のいいことはできるのでしょうか? お願いします。

  • Excel IDが重複するデータから値を抽出したい

    Excelで同じ商品IDが登録されたデータの中から一致する値を返したい。 商品IDと商品名を登録しているシート1と商品IDを入力し商品名をINDEX+MATCH関数で商品名を抽出し、商品の詳細の情報(ここでは含有物質と含有量)を登録するシート2がそれぞれあります。 シート2には商品IDと含有成分の物質名を登録する為、商品IDが同じなら1から連番を振る(COUNTIF関数)物質登録用のID2があります。 ここで抽出したい値は シート2を参照範囲として、商品IDを登録しているシート1で 例 IDが1で含有物質Aが登録されていたら、物質Aの含有量の値を抽出したい しかしINDEX関数、VLOOKUP関数で抽出しようとしても、シート2には同じ商品IDが複数登録されているので、一番最初に合致した値しか返すことができません。 重複した商品IDが登録されているデータから商品IDが1でかつ、含有物質Aが登録されていたら、その含有量の値を抽出したい場合、どのような関数を使えばいいでしょうか。 VLOOKUPは参照範囲の列を挿入してしまうと抽出範囲がずれてしまう為、INDEX+MATCH関数を使用しております。 すこしややこしいですが、ご教授頂けると助かります。 宜しくお願い致します。

  • Excelでの関数

    こんにちは、お願いします。 販売管理の入力データをExcelへ移して一覧表を作成したいと思います。 同じコードNO.のデータが何件もある中で、同コード1件だけの行を抽出して表を作成する方法があるでしょうか? 並び替えや、関数によるSheet間のコピーなど… 関数では検出する値はセル単位のみですか?コードを元に行全体を選択してコピーや移動などできるのでしょうか? うまく説明できないので内容が良くわからないかもしれませんが、すみません。 何か良い方法があれば是非教えてください。 宜しくお願い致します。

  • EXCELの関数で複数条件の抽出方法

    エクセルの関数について教えてください。 VLOOKUPで複数条件を抽出したい。 以下の様に出来ればと思いますが、数式が分かりません。 売上データーの中から複数の条件に一致したものだけを抽出したい。 例) 商品が1,2,3,4,5,6,7,8,9,10と種類が100あるとします。 売上先A,B,C,D,E,F,G,と100の客先があるとします。 その中から、商品1と売上先Aの場合はA-1と売上金額のデーターを抽出させて、商品1と売上先がDの場合はD-1と売上金額を抽出させたい。但し、商品1と売上先Bの場合は売上金額を抽出させたくない。 このような場合の関数での数式を教えて欲しい。 お分かりの方があればお教え願います

  • EXCEL関数について教えてください

    一覧表から条件一致の数を数える関数。 一つの範囲を指定して、その中から条件に一致するセルを数えるには COUNTIF関数を使いますが、 別々の範囲の中から、各々一つずつの条件に一致するセルを数えるには どうしたら良いでしょうか? 例えば、A列の○○という条件に一致して、なおかつE列の△△にも一致する セルの数を数えたいのですが。。。 分かりにくくてすみません。

専門家に質問してみよう