- ベストアンサー
(excel)複数列検索で中間一致
KURUMITOの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
それぞれのシートでは2行目から下方にデータがあるとします。 MasterシートはここではSheet1として、また結果出力シートはSheet2として述べます。 シート1のF2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(D2="","",C2&"/"&D2&"/"&COUNTIF(F$1:F1,C2&"/"&D2&"*")) これは部署コードと職級コードが一致する人はかなり少ないものと判断しているからです。 ただ部署コードと職級コードが一人の場合には最後で/0となりますが2人の場合には/1となります。 シート2のF2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",C2&"/"&D2) 答えのE2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(AND(ISNUMBER(FIND(INDEX(Sheet1!A:E,MATCH(F2&"/0",Sheet1!F:F,0),1),A2)),ISNUMBER(FIND(INDEX(Sheet1!A:E,MATCH(F2&"/0",Sheet1!F:F,0),1),A2))),INDEX(Sheet1!A:E,MATCH(F2&"/0",Sheet1!F:F,0),5),IF(AND(ISNUMBER(FIND(INDEX(Sheet1!A:E,MATCH(F2&"/1",Sheet1!F:F,0),1),A2)),ISNUMBER(FIND(INDEX(Sheet1!A:E,MATCH(F2&"/1",Sheet1!F:F,0),1),A2))),INDEX(Sheet1!A:E,MATCH(F2&"/1",Sheet1!F:F,0),5),"")) この式は部署コードと職級コードが同じ人が2人までの式です。もっと多くの人が考えられる場合には/2から/3と変えた式を追加することが必要です。 かなり式は複雑になりますが頑張ってください。 このような面倒な式にしないで解決する方法はそれぞれの人物についてIDコードを設定して対応することがより現実的でしょう。
関連するQ&A
- 【Excel】一致するデータの検索
Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBA 検索ボックスの作成について
VBA初心者です。 エクセルで、ある列(仮にA列)のみに限定し、ショートカットキーを押した時に、 別シートにあるデータベースから検索、 検索結果をショートカットキーを押したセルに反映させるマクロを組みたいと思っています。 具体的には、 シート1→(請求明細用シート) A列→コード B列→企業名 C列→部署名 D列→請求内容 E列→金額 etc シート2→データベース(全コード一覧) A列→コード B列→企業名 C列→部署名、のみが記載。 検索ボックスは、 ユーザーフォームにテキストボックスひとつ、ボタン1つ、リストボックス1つ。 テキストボックスに文字を入力し、ボタン(検索用)を押すと、 リストボックスにシート2上のAーC列の結果が表示され(検索条件:部分一致)、 検索結果をリストボックス上でダブルクリックすると、 ショートカットキーを押したA列のセル(及びB-C列)に検索結果を出力することができる、 といったプログラムを考えています。 (B-C列への出力はVLOOKUPだけで大丈夫なので、マクロ上で組む必要はないです。 また、テキストボックスで検索する時は、基本的にB列(会社名)の内容で検索する予定です。 そして同じ会社でも部署が違えば、別のコードを採用している為、 検索結果が複数ある場合があります。 注文が多くて申し訳ありませんが、よろしくお願いします。
- 締切済み
- Visual Basic
- 【EXCEL】A列に複数あるデータに対応するB列のデータを表示させる
既出かもしれませんが質問です。Accessでやると簡単なのでしょうが、Excelの関数のみで行えますか? 具体的には、sheet1、2、3のデータを使用して、 (1)sheet3でリンクさせて表示(使用するのはsheet1、2のみ) (2)かつsheet3で並べ替えて表示(使用するのはsheet1、2、3) となりますが、とりあえず(1)だけでも早急にできるようにしたいと思っています。 【sheet1】(データベース2:A列=検索被対象コード、B列=氏名、C列=社員コード(各行はB列=C列です)) A列 B列 C列 1912 A子 123 1912 B子 1234 1912 C子 2345 2001 C子 2345 2001 D子 34567 2001 A子 123 【sheet2】(データベース2:A列=社員コード、B列=氏名、C列=地域コード(各行はA列=B列=C列です。)) A列 B列 C列 123 A子 3 1234 B子 1 2345 C子 2 2345 C子 2 34567 D子 4 123 A子 3 【sheet3】(表示用:A1=検索対象コード、A3以下=sheet1A列の中から対象となるC列の情報を、(可能であればsheet2C列の地域コード順に)表示させたい) A列 B列 2001(sheet1A列の検索対象コード:手入力により可変とする。) 2345(sheet1C列のC子の社員コード(sheet2C列の地域コード2)) 123(sheet1C列のA子の社員コード(sheet2C列の地域コード3)) 34567(sheet1C列のD子の社員コード(sheet2C列の地域コード4))
- ベストアンサー
- オフィス系ソフト
- 複数条件の設定(EXCEL)
次のような表を作っています。 A列 B列 C列 D列 営業担当 金額 サポート担当 金額 Aさん ○○円 Dさん ○○円 Bさん ○○円 Eさん ○○円 Cさん ○○円 Fさん ○○円 Aさん ○○円 Fさん ○○円 Bさん ○○円 Dさん ○○円 「C列がFさんで、A列がAさんかBさんの場合、D列を返す」 というものです。 SUMPRODUCTを使ってやってみたのですが、良くわかりません。 回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 二つの検索値から別のシートに抽出する
WinXP,Excel2000 下記のような表から例えば氏名コード(A列)103番と 日付(B列)2006/5/3からE列のデータ3.50を導きたい のですが、この場合検索値がA列・B列と2つあるので 同じシートに答えを出す場合は F3=SUMPRODUCT((A1:A9=F1)*(B1:B9=F2)*E1:E9)で できるのですが、別のシートに抽出するにはどうしたら よいでしょうか。ご教授ください。<m(__)m> A列 B列 C列 D列 E列 F列 1 100 2006/5/3 東京 8:10 8.00 103 2 101 2006/5/3 名古屋 9:10 7.25 2006/5/3 3 102 2006/5/3 大阪 7:45 5.00 3.50 4 103 2006/5/3 京都 10:30 3.50 5 104 2006/5/3 札幌 8:40 4.75 6 100 2006/5/4 福岡 8:45 5.00 7 101 2006/5/4 東京 9:05 6.25 8 103 2006/5/4 大阪 8:15 1.50 9 105 2006/5/4 横浜 10:15 3.00
- ベストアンサー
- オフィス系ソフト
- *EXCEL*2シートにあるデータを同じ文字列があるか検索して隣のセルを関連づける
タイトルではわかりにくいかと存じますがExcelの機能につきましてご質問です。 シート1の列Aに「文字列a」~「文字列z」 列Bに「文字列aaa」~「文字列zzz」が入力してあるとします。 シート2の列Dにシート1の列Aに入力してある文字列と同じ文字列が 入力してあるのですが、順は不同となります。 このときシート2の列Dの横(列E)に対応するシート1のAの横列(B) の文字列を表示させたいのですが、なにかよい方法はございます でしょうか。 シート1 シート2 A B D E a aaa d ddd ←この部分を関数などで b bbb a aaa 表示させる c ccc b bbb d ddd c ccc ご回答いただけますと大変ありがたいです。 よろしくお願いいたします
- 締切済み
- オフィス系ソフト
- Excel 複数条件一致による文字列取得
途中まで作成してみましたが、できなかったのでお教え願います。 (1)シート<入力用>に以下のように入力されています。 ┃ ┃A ┃B ┃C ┃D ┃E ┃ ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃日付┃社員番号┃休暇等┃業務開始時間┃業務終了時間┃ ┃2┃0926┃11111111┃休 ┃ ┃ ┃ ┃3┃0927┃11111111┃直 ┃8:30 ┃17:30 ┃ ┃4┃0928┃11111111┃ ┃8:30 ┃18:30 ┃ ┃5┃0926┃22222222┃研 ┃8:30 ┃17:30 ┃ といった状態で約120名のランダムなデータがべた打ちされてます。 (2)(1)を以下のような集計表に飛ばしたいのです。 ┃ ┃A ┃B ┃C ┃D ┃E ┃・・・・・・ ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃ ┃0926┃0927┃0928┃0929┃・・・・・・ ┃2┃11111111┃休 ┃直 ┃ ┃・・・・・・ ┃3┃22222222┃研 ┃ ┃ ┃・・・・・・ ┃4┃33333333┃・ ┃・ ┃ ┃・・・・・・ ┃5┃44444444┃・ ┃・ ┃ ┃・・・・・・ 行:日付 列:社員番号 飛ばしたい情報は、(1)の<休暇等>文字列です。 ためしに、(2)のB2に以下の式を入れてみました。 B2=index(入力用!A2:E5,match(B1,入力用!A2:A5,0),match(A2,入力用!B2:B5,0)) 当然ですが、日にちが帰ってきました。が、なぜか0927が帰ってきました。 このINDEXとMATCHを利用して(1)のC2:C5にある文字列を拾えないでしょうか? 宜しくお願いいたします。
- 締切済み
- オフィス系ソフト
- Excel2007 複数条件での検索
Excel2007で複数条件のデータの抽出について教えて下さい。 現在、シートAにデータが入力され、シートBにデータの抽出を行いたいと思います。 シートAの内容は以下の通りです(アルファベットと数字はセルの場所です): 1行目: 項目欄 2行目以下: データ詳細 1行目 A1 「日付」 B1「名前」 C1「出社状況」 2行目以下 A2 12/01 B2 山田 C2 出社 A3 12/01 B3 佐藤 C3 早退 A4 12/01 B4 木村 C4 出社 A5 12/02 B5 木村 C5 早退 A6 12/02 B6 山田 C6 遅刻 A7 12/02 B7 佐藤 C7 遅刻 ・・・・・ A列の日付は昇順ですが、B列の人名はランダムに入力されています。 また、日付によっては途中入退社する人もいるので、12/01に名前がなくても、 12/10から名前が入力されている場合(あるいはその逆)もありえます。 シートBは以下の通りです: 1行目 名前 A列:日付 B1 木村 C1 山田 D1 佐藤 ・・・ A2 12/01 A3 12/02 このシートBの B2に シートAから 「木村の12/01の出社状況」(つまりC4)に値するデータを 自動的に抽出するような関数を入力したいのですが、どのようにすればよいのでしょうか? (このB2セルの式をB2:D3に入力していきたいので、絶対値を指定することになると思いますが・・・) IndexやらMatchやらLookupやらを色々試してみたのですが、どうも上手くいきません。 どなたかアドバイスをお願いいたします。
- ベストアンサー
- オフィス系ソフト
- SUMPRODUCT関数で複数条件適用されない
Sheet1 A列:日付 B列:注文番号 C列:品名 D列:整理番号 E列:数量 集計 A列:品名 B~AF列:日付(1~31日) 【集計】B~AF列の日付、A列の品名が 【Sheet1】A列の日付、C列の品名と一致したら 【Sheet1】E列の数量を【集計】の該当するセルに抽出する 式をSUMPRODUCT関数で作成しました。 例)10/1 りんご 20 【集計】B3セルに以下の数式を入れましたが なぜか数量が「0」のままになります。 =SUMPRODUCT('Sheet1'!$A$3:$A$200='集計'!B$2)*('Sheet1'!$C$3:$C$200="りん ご")*('Sheet1'!$E$3:$E$200) 特に数式のミスはないと思うのですが どうしても正しい値が入りません。 数式に間違いがあればご指摘いただけませんでしょうか。 また、他に良き方法があればご教示いただけるとありがたいです。
- ベストアンサー
- その他MS Office製品
- 関数でなんとかなりませんか?(EXCEL)
マクロや関数に関してはあまり知識がありません。 そこでお教えいただきたいことがあり、質問させていただきました。 まず、あるワークシートに以下のような表があります。 A列|B列 a 1 b 1 c 1 d 2 e 2 この表を新しいワークシート(ワークシート名:並べ替え)以下のように並べ替えたいと思っています。 A列|B列|C列|D列 1 a b c 2 d e 要するに、B列の値を認識して値が同じものを1行目に横並びにしたいのです。 関数やマクロでなんとかなりませんか? 膨大なデータがあるので手作業でやるととてもしんどいですし、間違いがでやすくなり困っています。 お願いいたします。
- 締切済み
- オフィス系ソフト