- 締切済み
Excelの検索関数 値が違うのは・・
以下のような2つ表を作成したいのですが、よろしくお願いします。 ファイル人数 シート名データ 列 ---A列-----B列-----C列----D列----E列--- 1 113355 一般 100 2 113355 中高 20 3 113355 高齢 50 4 114466 一般 200 5 114466 小児 30 ファイル施設 シート名東京 列 ---A列-----B列-----C列----D列----E列----F列 1 登録番号 一般 小児 中高 高齢 2 113355 100 20 50 3 114466 200 30 といった感じにしたいのですが、 C列からF列の関数を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
残念なのは、あなたの手抜きの質問のほうです。 また、残念以前に >2003で使えるものでありませんか? 既に回答済みですが? 再掲: >=SUMPRODUCT(データ!$A$1:$A$100=$A3)*(データ!$D$1:$D$100=C$1),データ!$E$1:$E$100) などのようにすることもできます。 寄せられた回答を試すことすらしていないのは、いったいどういうことでしょうか。
- KURUMITO
- ベストアンサー率42% (1835/4283)
簡単には作業列を作って対応することです。 ファイル「人数」の「データ」シートではデータが2行目以降にあるとして、F2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(F$1:F1)+1,"")) また、G2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",A2&D2) [人数.xls]データ ファイル「施設」「東京」シートのA2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX([人数.xls]データ!F:F),"",INDEX([人数.xls]データ!A:A,MATCH(ROW(A1),Sheet1!F:F,0))) C1セルから横の列には一般、小児、中高、高齢などの文字を入力します。 C2セルには次の式を入力して横方向にドラッグコピーした後で下方向にもドラッグコピーします。 =IF($A2="","",IF(ISERROR(INDEX([人数.xls]データ!$E:$E,MATCH($A2&C$1,[人数.xls]データ!$G:$G,0))),"",INDEX([人数.xls]データ!$E:$E,MATCH($A2&C$1,[人数.xls]データ!$G:$G,0)))) データを表示させるに当たっては前もってファイル人数を立ち上げておくことが必要です。 なお、ブックとシートの記載が数式に合っているかどうかを確認するために東京シートのH1セルなどに=を入力した後でファイル人数のデータシートのA1セルをクリックしてみてください。 [人数.xls]データ!A1と表示されれば上記の式で良いのですが間違っていた場合には式の中のシート名を変更してください。
- keithin
- ベストアンサー率66% (5278/7941)
ご利用のエクセルのバージョンが不明ですが、Excel2007以降を使って C2: =SUMIFS(データ!$A:$A,$A2,データ!$D:$D,C$1,データ!$E:$E) 右にコピー、下にコピー と作成するのが一番簡単です。 C2: =SUMPRODUCT(データ!$A$1:$A$100=$A3)*(データ!$D$1:$D$100=C$1),データ!$E$1:$E$100) などのようにすることもできます。 #注意 なお、ご相談のような計算をしたい場合、他のブックにシートを分散していると一部の関数でエラーで計算できない場合があるので、できるだけ同じブックの中にシートを束ねて計算することをお勧めします。 一見できたように見えても、次にブックを開くと計算できてないなどの状況が起こります。
- aokii
- ベストアンサー率23% (5210/22062)
長い式は面倒なので、 登録番号の種類を先にピボットテーブルで求めて、シート名東京のA列に貼り付けてから、 シート名データのB列に、以下をドラッグコピー、 =A1&D1 シート名東京のA~F列に、以下をドラッグコピー、 =IF(ISNA(VLOOKUP($A2&C$1,データ!$B:$E,4,FALSE)),"",VLOOKUP($A2&C$1,データ!$B:$E,4,FALSE)) でいかがでしょう。
補足
回答ありがとうございます。 残念ながら、Excelがバージョンが2003なのです。 2003で使えるものでありませんか?