|
sim さん、Jaka さん、こんばんは。
> A B C ・・・・・・・・・・AA AB AC
> −−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−− 1| 地区| 個人 | 氏名 | | 地区| 個人 | 氏名 |
> −−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−−
> 2| 001 | 0101 | VLOOKUP関数 | | 001 | 0101 | ああああ|
> −−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−− 3| 001 | 0102 | VLOOKUP関数 | | 001 | 0102 | いいいい|
> −−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−−
> 4| 001 | 0101 | VLOOKUP関数 | | 001 | 0103 | うううう|
> −−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−−
> 5| 001 | 0103 | VLOOKUP関数 | ↑
> −−−−−−−−−−−−−−−−−−− 基礎データ
> 6| 001 | 0102 | VLOOKUP関数 |
> ↑ ↑ ↑
> 入力1 入力2 ああああ
> いいいい
> うううう
> 入力1、入力2に番号を入れると氏名が自動で入るようにしたいのですが、VLOOKUP関 数は検索値が2つの場合も使えるのでしょうか?
> ちなみに式は
> =VLOOKUP(A2:B2,AA2:AC4,3,FALSE)
>
> ですが #VALUE! となります。すみませんがよろしくお願いいたします。
これは、Vlookup関数単独では無理だと思います。
VBAで処理した方が後々の変更の事も考えると簡単そうなのですが・・・。
敢えて数式で考えましょうか!!
マスターデータが セルAA1から
AA AB AC
1 地区 個人 氏名
2 001 0101 ああああ
3 001 0102 いいいい
4 001 0103 うううう
5 002 0101 えええええ
6 002 0102 おおお
7 002 0103 かかか
というように入力されているとします。
尚、AA列の書式はユーザー定義で「000」、
AB列の書式はユーザー定義で「0000」
に設定されているため「001」等と表示されるのであって、
セルには、数値が入力されているものとします。
又、このマスターデータの配置の条件として
地区(コード)は、同じ番号は必ず、連続しているものとします。
つまり、上記のように地区001ものが連続して入力され、
すべての001のデータが入力後、次の002のデータを入力する。
地区
001
001
002
001
こういうパターンはNGです。
又、実際にデータを入力する
A列、B列の書式もそれぞれAA列、AB列と同じにします。
以上の条件の時、
セルC2には、
「=OFFSET($AC$2,MATCH(A2,$AA$2:$AA$7,0)+MATCH(B2,OFFSET($AA$2,MATCH(A2,$AA$2:$AA$7,0)-1,1,COUNTIF($AA$2:$AA$7,A2),1),0)-2,0,1,1)」
という数式を入力してみてください。
後は、フィル操作という手順です。
ご覧のとおり、私も明日になれば、どういうロジックだったか
忘れてしまいそうです。
VBAをご存知なら、VBAで行う事も検討してみてください。
|
|