[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『検索窓を設けてデータを引っ張る』(ヤッホー)
すみませんが、
以下の内容ではうまく機能せず
ご教授のほどを、どうぞよろしくお願いいたします
「sheet1」に「sheet2」のデータを検索できるように、
検索窓と検索結果を置いています
検索窓 A B 11
検索結果 A B C D E F G H I 13
A列13行には以下の関数を入れて、ドラッグでI列まで引っ張っています
IF(COUNT(sheet2!$J:$J<ROW(sheet2!A1),"",INDEX(sheet2!A:A,SMALL
(sheet2!$J:$J,ROW(sheet2!A1))))
「sheet2」にデータを置いています
A B C D E F G H I J
10/1 梨 20 山梨 △FA ×L ○氏 女性 31歳
10/1 林檎 20 青森 ○FA ○L ○氏 男性 30歳
Jには以下の関数を入れています
IF(sheet1!A$11&sheet1!B$11="","",IF(IF(AND(sheet1!A$11<>"",
sheet1!B$11<>""),COUNTIF(A4,"*"&sheet1!A$11&"*")*COUNTIF
(B4,"*"&sheet1!B$11&"*"),IF(sheet1!A$11<>"",
COUNTIF(A4,"*"&sheet1!A$11&"*"),COUNTIF(B4,"*"&sheet1!B$11&"*")))
,ROW(),""))
ここまではうまくいくのですが、
検索窓を3個にしようとしたとき、うまくいかないのです
「sheet1」検索窓を3つ
検索窓 A B C 11
検索結果 A B C D E F G H I 13
先程と同じ関数、
A列13行には以下の関数を入れて、ドラッグでI列まで引っ張っています
IF(COUNT(sheet2!$J:$J<ROW(sheet2!A1),"",INDEX(sheet2!A:A,SMALL
(sheet2!$J:$J,ROW(sheet2!A1))))
「sheet2」にデータを置いています
A B C D E F G H I J
10/1 梨 20 山梨 △FA ×L ○氏 女性 31歳
10/1 林檎 20 青森 ○FA ○L ○氏 男性 30歳
先程と違う関数、
Jには以下の関数を入れています
IF(検索!A$10&検索!B$10&検索!C$10="","",IF(IF(AND(検索!A$10<>"",検索!B$10<>"",検索!C$10<>""),COUNTIF(B4,"*"&検索!A$10&"*")*COUNTIF(C4,"*"&検索!B$10&"*")*COUNTIF(D4,"*"&検索!C10&"*"),IF(検索!A$10<>"",COUNTIF(B4,"*"&検索!A$10&"*"),COUNTIF(C4,"*"&検索!B$10&"*"),COUNTIF(D4,"*"&検索!C$10&"*"))),ROW(),""))
しかし、上記でははうまくいかず
済みませんが教えていただければありがたく、
よろしくお願いいたします
< 使用 Excel:unknown、使用 OS:unknown >
なにか、最初のA13セルの式からしてエラーになります。
・まず、日本語でやりたいことを説明して下さい。 ・そして検索窓というのにこう入れたら、こういう結果を出したい、という説明をしてください。 それがスタートだと思います。 また、使用しているExcelのversionを明記してください。できることが全く違ってきますので。
(xyz) 2023/10/24(火) 11:58:26
計算式を書くのも良いですが、何がしたいかを書いたら、そのほうが早いような気がしますよ。
そうすれば、誰かが(現在のものよりもより)美しい式を提案してくれると思います(笑)
見たところ、検索キー1は日付、検索キー2は品名、検索キー3は県名でしょうかねえ。
(ゆたか) 2023/10/24(火) 12:04:48
A13=IFERROR(INDEX(Sheet2!A:A,AGGREGATE(15,6,ROW($A$2:$A$100)/((Sheet2!$A$2:$A$100=$A$11)*(Sheet2!$B$2:$B$100=$B$11)*(Sheet2!$D$2:$D$100=$C$11)),ROW(A1))),"")
A13に上記の式を入れてI13まで右にコピーします。
Sheet2においては2行目から100行目までデータがあると仮定しています。
Sheet2のJ列は使いません。
他の投稿からExcel2019と仮定しています。
(ゆたか) 2023/10/24(火) 12:32:21
また、やりたいことですが
Sheet1の検索キーを使って、Sheet2のデータをSheet1のA列〜I列の13行目に表したいのですが
うまくいかない状態となります
○Sheet1
検索窓
A列 B列 C列 日付 分類 品名 11行目
検索結果
A列 B列 C列 D列 E列 F列 G列 H列 I列 日付 分類 品名 県 工場 ライン 氏名 性別 年齢 13行目
○Sheet2(データ)
A列 B列 C列 D列 E列 F列 G列 H列 I列 2行目 10/1 林檎 王林 山梨 △工場 ×ライン ○氏 女性 31歳 3行目 10/1 林檎 ○○ 青森 △工場 ×ライン ○氏 女性 32歳
ゆたかさんに、いただいた式をためしてみたのですが
やはりうまくいかず、、、
申し訳ありません
(ヤッホー) 2023/10/24(火) 15:01:10
=IFERROR(INDEX(Sheet2!A:A,AGGREGATE(15,6,ROW($A$2:$A$100)/((Sheet2!$A$2:$A$100=$A$11)*(Sheet2!$B$2:$B$100=$B$11)*(Sheet2!$C$2:$C$100=$C$11)),ROW(A1))),"")
検索キーとして日付、分類に加えて、県名ではなく品名に変えました。
(ゆたか) 2023/10/24(火) 15:58:02
Sheet2のデータにも見出しをつけて、"フィルタオプション"で抽出したらいかがですか? 基本的な抽出用の道具をExcel君が提供してくれているのですから、何がなんでも関数でと こだわらないほうが良いのではないですか? 関数が一番簡単とも限りません。 (xyz) 2023/10/24(火) 16:20:02
もう少し調べてみます
(ヤッホー) 2023/10/24(火) 16:37:09
では、改めまして。
検索シート名:Sheet1
検索キーの位置:A11,B11,C11
データシート名:Sheet2
データ範囲:Sheet2の2行目から
Sheet2のJには以下の式を入力して、下コピー
=IF(Sheet1!$A$11="",0,COUNTIF($A2,Sheet1!$A$11))+IF(Sheet1!$B$11="",0,COUNTIF($B2,"*"&Sheet1!$B$11&"*"))+IF(Sheet1!$C$11="",0,COUNTIF($C2,"*"&Sheet1!$C$11&"*"))
一致する検索キーの数を表示します。日付以外は検索ワードを含めば一致。
Sheet1のA13には以下の式を入力して、右コピー
=IFERROR(IF($A$11&$B$11&$C$11="","",INDEX(Sheet2!A:A,MATCH(COUNTIF($A$11:$C$11,"<>"),Sheet2!$J:$J,0))),"")
入力された検索キーの数と一致するレコードをSheet2のJから探します。
複数一致した場合は、一番上のレコードが表示されます。
(ゆたか) 2023/10/25(水) 12:00:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.