• 締切済み

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列の関数を教えて下さい。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

残念なのは、あなたの手抜きの質問のほうです。 また、残念以前に >2003で使えるものでありませんか? 既に回答済みですが? 再掲: >=SUMPRODUCT(データ!$A$1:$A$100=$A3)*(データ!$D$1:$D$100=C$1),データ!$E$1:$E$100) などのようにすることもできます。 寄せられた回答を試すことすらしていないのは、いったいどういうことでしょうか。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

簡単には作業列を作って対応することです。 ファイル「人数」の「データ」シートではデータが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)
回答No.2

ご利用のエクセルのバージョンが不明ですが、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) などのようにすることもできます。 #注意 なお、ご相談のような計算をしたい場合、他のブックにシートを分散していると一部の関数でエラーで計算できない場合があるので、できるだけ同じブックの中にシートを束ねて計算することをお勧めします。 一見できたように見えても、次にブックを開くと計算できてないなどの状況が起こります。

karinsu
質問者

補足

回答ありがとうございます。 残念ながら、Excelがバージョンが2003なのです。 2003で使えるものでありませんか?

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

長い式は面倒なので、 登録番号の種類を先にピボットテーブルで求めて、シート名東京のA列に貼り付けてから、 シート名データのB列に、以下をドラッグコピー、 =A1&D1 シート名東京のA~F列に、以下をドラッグコピー、 =IF(ISNA(VLOOKUP($A2&C$1,データ!$B:$E,4,FALSE)),"",VLOOKUP($A2&C$1,データ!$B:$E,4,FALSE)) でいかがでしょう。

関連するQ&A