複数条件に一致したデータを別シートに出力させる方法についてご教示いただきたいです。
- マスタシート
県コード、市町村コード、県名、市町村名が記載されている。
県コード、市町村コード自体は重複しているが、
県コード+市町村コードは重複しない
マスタシートには後からデータが追加される可能性がある
- 売上シート
県コードと市町村コード(資料の赤枠)が入力されると対応する
県名が出力される(緑枠)
以前ご回答頂き、市町村名は出力できるようになったので
同じ式で県名も出力できないかと考え以下の関数を組みました。
なお、マスタ!$B$4:$B$101、マスタ!$C$4:$C$101=C4の箇所は計算が可変になる
ことと、可変行の値取得方法が上手くできず固定にしました。
IF(B4 = "","",INDEX(マスタ!D:D,SUMPRODUCT((マスタ!$B$4:$B$101 = B4)(マスタ!$C$4:$C$101=C4) ROW(マスタ!$B$4:$B$101))))
そのまま3000行分オートフィルでコピー,
3000行分県コードと市町村を入れたのですが、
途中で式の結果が0になって正常に計算されない箇所がありました。
売上シートの県コードと市町村コードが一致した場合、マスタシートから
県コードだけを出力したい場合、どのような式にすればよいのでしょうか。
なお、レイアウトの関係で別シートの追加やシートの別部分に出力等はできません。
県コードと県名は完全一致のはずでしょうし、県名を取得したいだけならば、市町村コードを検索の条件に含める意味はあるのでしょうか。
県コードが重複して存在しており、Vlookup関数が使えないので市町村コードを追加で入れていました。
マスタで県コードが重複していたとしても、index関数などで取得する方法があるのでしょうか?(その点ができるかわからず、複数条件で検索ということにしておりました。)
同じ県コードならばどの行も同じ県名ですよね?
ならば、VLOOKUPは最初に見つかった結果を返すので、単純に=VLOOKUP(B4,マスタ!$B$4:$D$101,3,FALSE)で問題ないように思います。
ご回答ありがとうございます!
色々と小難しく考えすぎていたようでした。
VLOOKUP関数で問題ありませんでした!お騒がせしました。
ひとまず解決したようでよかったです。
前回の質問からの流れもありますから、そういうことはよくあることです。寧ろ生かそうとしていいことじゃないかと思います。
さて、今回の目的自体は達成されたことになると思いますが、質問の起因となった状況としてはもう少し確認したほうが良いかもしれません。
作成された式の結果が0というのはSUMPRODUCT部分の結果のことだと思いますが、少なくともぱっと見は問題無いように見えますので、県コードか市町村コードのどちらか、もしくは両方で、一致するものを見つけられなかった状況だと思います。
両シートの県コードや市町村コードに余計な空白が入っていないか、式の範囲指定が間違っていないかあたりが確認ポイントになるでしょうか。
この事象ですが、売上シートに他のエクセルからコピーしてきた文字列形式データを貼り付け(貼り付け形式は値と書式の保持)すると、発生しています。
マスタデータのコードも同じ形式で貼り付けをして実行しているのですが、0になります。(この場合、売上シートのコードをマスタに貼り付け直してから計算実行すると成功します)
ただ、この内容は本質問からずれている気もするので何度か試してみて原因がつかめない時は改めて新規質問しようと思います。
ちょっと方向が違う内容になるのでそれがいいですね。
回答1件
あなたの回答
tips
プレビュー