- ベストアンサー
エクセルの関数:データ反映のための検索・返す関数に困っています
- Windows XPのエクセル2003を使用している場合、集計表ファイルにデータを反映させるための関数について教えてください。
- 集計表のセルA1を検索値とし、セルB1とセルB2の値を返す関数はありますか?また、セルA3を検索値とし、セルB3の値を返す行もあるようです。
- さらに、セルA5を検索値とし、B5、B6、B7、C5、C6の値を返す行などもありますが、2つの値を返す関数についても教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
失礼、誤記ました。 検索: =IF(ROW(A1)>COUNTIF(リスト!B:B,$A$1),"",VLOOKUP($A$1&"-"&ROW(A1),リスト!A:F,3,FALSE)) 以下コピー #以下余談 もちろん、検索キーを用意しなくても無理矢理該当する複数行を取ってくる関数を組み立てることは、やればできます。 リストシートのA列にコード 集計シートのA1にコード =IF(ROW(A1)>COUNTIF(リスト!$A:$A,$A$1),"",INDEX(リスト!A:A,SMALL(IF(リスト!$A$1:$A$100=$A$1,ROW($A$1:$A$100)),ROW(A1)))) と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力、右にコピー、下にコピー。 という具合にやれば出来ますが、こんなイミフメイの数式を使おうとするのは無駄です。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
エクセルじゃない他の表計算ソフトでは、ご希望のように「ヒットした複数行をまとめて引っ張ってくる」関数が用意されているものもありますが、エクセルにはそういう関数はありません。 ごく簡単な手段としては、リストのA列に「一意のコード」を計算式で並べて置き、あるだけ1つずつVLOOKUPするような方法がお勧めです。 作成例: リストシートのB列に コード aaa bbb aaa ccc aaa : のように並んでいるとすると A列に 検索キー aaa-1 bbb-1 aaa-2 ccc-1 aaa-3 : のように計算で出させておき、aaaを取り出したいときはaaa-1とaaa-2とaaa-3をそれぞれVLOOKUPするような手立てですね。 A列: =IF(B2="","",B2&"-"&COUNTIF($B$2:B2,B2)) 以下コピー 検索: =IF(ROW(A1)>COUNTIF(リスト!A:A,$A$1),"",VLOOKUP($A$1&"-"&ROW(A1),リスト!A:F,3,FALSE)) 以下コピー
- shintaro-2
- ベストアンサー率36% (2266/6245)
>セルA5を検索値とし、B5、B6、B7、C5,C6の値を返す行など様々です。 その規則性がわからないと、誰も回答できません。
- saburo0
- ベストアンサー率35% (76/216)
集計表の作り方の見直しはできないのでしょうか。 これは関数だけでは、困難そうです。 集計表側で、A5が検査値なら、検索結果の値をB5,C5,D5,… のように 横一列なら、取得しやすいと思うのですが、難しいですか?
補足
説明不足で申し訳ないです。 集計表はセルA1に品目コード、セルB1に品名、セルC1に付属品種類、セルD1に本数、セルE1にその他の項目があります。 この場合、A2セルに111(品目コード)、B2セルにAAA(品名)、C2セルに あああ(付属品種類)、C3セルに いいい(付属品種類)、D2セルに2(本数)、D3セルに5(本数)、E2セルにスパナ、とデータが入力してあります。 一つの品目コードに対して、付属品種類が複数や、その他が複数の場合があります。