• ベストアンサー

エクセル2000で教えて下さい。

エクセル2000で質問です シート1のA列に日付が入っています。 B列に東京、大阪・・・数種類の文字が入ります。 C列に数字が入力されています。 日々それぞれ入力されていく形になっています。 さらにシート2のA列に日付が入っています。 B列には予めすべて大阪と入力されています。 C列には数字が入るようになっているのですが 例えばシート1のセルA3に10月18日と入ってB3に大阪と入った時には C3に入った数字と同じ数字がシート2のC3に入力されるようにしたいのです。 シート2のC3と言うのはA3にシート1のA3と同じ日付が入って いるから隣のC3に入る形です。 上の場合もしA8に10月18日と入っていればC8にシート1のC3と 同じ数字が入るようにしたいのです。 シート1のB列に大阪以外の文字が入った場合は無視です。 大阪と入った場合のみです。 どなたか御教授下さい。 補足が必要なら申し付け下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.6

No.4です。補足ありがとうございます。質問を勘違いしていました。 それで、改めて考えてみたら例と同じ結果が出るようになったのですが、No.2さんの回答と全く同じになりました。 なので、No.2さんの式でうまくいくはずなのですが…。シート2のC3に式を入れて、下にコピーしてみてください。

choroq
質問者

お礼

お礼が遅くなりました。 こちらのやり方が間違っていました。 ご指摘の方法で無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。

その他の回答 (6)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.7

choroqさんこんばんは、No2のmerlionXXです。 >御指示通り入力しましたがうまくいきませんでした。 どのようにうまくいかないのでしょうか? No2で書いたのはご指定によりC3セルに入れる例ですが、もしC1セルだとしたら =SUMPRODUCT((Sheet1!$A$1:$A$100=A1)*(Sheet1!$B$1:$B$100="大阪")*(Sheet1!$C$1:$C$100)) として、下へドラッグして式をコピーしてみてください。 回答への補足で書かれたとおりの答えがでますけど・・・。

choroq
質問者

お礼

お礼が遅くなりました。 こちらのやり方が間違っていました。 ご指摘の方法で無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.5

1番です。 補足読みました。 「大阪」を探し出せばよいということでしょうか? Sheet1でメニューから、データ→フィルタ→オートフィルタを設定しておき、B列の逆三角形をクリックして「大阪」を選択。 Sheet1のA1セルをクリック→「Shift+Ctrl+カーソルの右」を押し、そのまま「Shift+Ctrl+カーソルの下」を押す→「Ctrl+C」これで範囲がコピーされますのでSheet2に貼り付ける。 この操作をマクロにしたものが下記です。 Sub Macro1() ' ' Macro2 Macro ' マクロ記録日 : 2006/10/18 ユーザー名 : Administrator ' ' Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="大阪" Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Range("A1").Select Sheets("Sheet1").Select Selection.AutoFilter Field:=2 Range("A1").Select Application.CutCopyMode = False Selection.AutoFilter End Sub Excel標準のマクロの記録で取ってみました。 これで一応自動化でしょうか… これしか思いつきません。 すみません。

choroq
質問者

お礼

お礼が遅くなりました。 無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

シート1もシート2もA列に日付が重複なく入っているが、同じ日付が入る行がシート1とシート2で異なる、ということでしょうか。 ちょっと長くなりましたが、こんなのでもできます。 =IF(ISNA(MATCH(A1,Sheet1!A:A,0)),"",IF(INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0))="大阪",INDEX(Sheet1!C:C,MATCH(A1,Sheet1!A:A,0)),""))

choroq
質問者

補足

早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート1のA列には日付が入ります。同じ日付が連続する場合もあります。 B列には東京、大阪、名古屋、・・・ 任意の文字が入ります。 同じ日付で大阪が連続する事はありません。 A列の日付が連続する場合はB列に大阪、東京、名古屋などの他の文字が 入力された事になります。 C列には数字が入力されます。 シート2にはA列に日付が入ります。これは1行につき一つの日付しかはいりません。 B列にはすでに大阪とすべてのセルに入っています。 C列に数字を入れたいのです。 内容は シート1のB列に大阪と入力された場合のみ、その横(C列)の数字が シート2のC列に反映させたいのです。 当然、行数はシート1とシート2では異なってきます。 例 (シート1)    A        B       C 1 10/18    東京      200 2 10/18    名古屋     100 3 10/18    大阪      150 4 10/19    大阪      200 5 10/20    名古屋     300 6 10/20    大阪       80 (シート2)(A列B列は最初から入力済です)    A        B       C 1 10/18    大阪      150 2 10/19    大阪      200 3 10/20    大阪       80 こうなるようにシート2のC列に式を入れたいのです シート1のB列に大阪と入力された場合にシート2のC列に数字が勝手に 入力されていくという形です。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 シート2のC列に=IF(COUNTBLANK(A1:B1)>0,"",INDEX(Sheet1!$C$1:$C$100,SMALL(IF((Sheet1!$A$2:$A$100=A1)*(Sheet1!$B$2:$B$100=B1),ROW(Sheet1!$A$2:$A$100),9999),1)))を入力して下さい。(シート1の表範囲は見出し行有りでA2:C100としています) 配列数式につき、入力完了時にshift,ctrl,enterキーを同時押下して下さい。

choroq
質問者

補足

早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート1のA列には日付が入ります。同じ日付が連続する場合もあります。 B列には東京、大阪、名古屋、・・・ 任意の文字が入ります。 同じ日付で大阪が連続する事はありません。 A列の日付が連続する場合はB列に大阪、東京、名古屋などの他の文字が 入力された事になります。 C列には数字が入力されます。 シート2にはA列に日付が入ります。これは1行につき一つの日付しかはいりません。 B列にはすでに大阪とすべてのセルに入っています。 C列に数字を入れたいのです。 内容は シート1のB列に大阪と入力された場合のみ、その横(C列)の数字が シート2のC列に反映させたいのです。 当然、行数はシート1とシート2では異なってきます。 例 (シート1)    A        B       C 1 10/18    東京      200 2 10/18    名古屋     100 3 10/18    大阪      150 4 10/19    大阪      200 5 10/20    名古屋     300 6 10/20    大阪       80 (シート2)(A列B列は最初から入力済です)    A        B       C 1 10/18    大阪      150 2 10/19    大阪      200 3 10/20    大阪       80 こうなるようにシート2のC列に式を入れたいのです シート1のB列に大阪と入力された場合にシート2のC列に数字が勝手に 入力されていくという形です。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

仮に100行目まであるとすれば、 =SUMPRODUCT((Sheet1!$A$1:$A$100=A3)*(Sheet1!$B$1:$B$100="大阪")*(Sheet1!$C$1:$C$100))

choroq
質問者

補足

早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート1のA列には日付が入ります。同じ日付が連続する場合もあります。 B列には東京、大阪、名古屋、・・・ 任意の文字が入ります。 同じ日付で大阪が連続する事はありません。 A列の日付が連続する場合はB列に大阪、東京、名古屋などの他の文字が 入力された事になります。 C列には数字が入力されます。 シート2にはA列に日付が入ります。これは1行につき一つの日付しかはいりません。 B列にはすでに大阪とすべてのセルに入っています。 C列に数字を入れたいのです。 内容は シート1のB列に大阪と入力された場合のみ、その横(C列)の数字が シート2のC列に反映させたいのです。 当然、行数はシート1とシート2では異なってきます。 例 (シート1)    A        B       C 1 10/18    東京      200 2 10/18    名古屋     100 3 10/18    大阪      150 4 10/19    大阪      200 5 10/20    名古屋     300 6 10/20    大阪       80 (シート2)(A列B列は最初から入力済です)    A        B       C 1 10/18    大阪      150 2 10/19    大阪      200 3 10/20    大阪       80 こうなるようにシート2のC列に式を入れたいのです シート1のB列に大阪と入力された場合にシート2のC列に数字が勝手に 入力されていくという形です。

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.1

はじめまして 日付と行の関係が今ひとつわかりかねるのですが… sheet2のC1に「=IF(AND(A1=Sheet1!A1,Sheet1!B1="大阪"),Sheet1!C1,"")」を入れて必要なだけ下へコピーしてください。 C1セルの右下にカーソルを合わせるとカーソルの形が十字に変わりますので、そこで左クリックしたまま、下へ引き摺って放せばOKです。 違っていますでしょうか?

choroq
質問者

補足

早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート1のA列には日付が入ります。同じ日付が連続する場合もあります。 B列には東京、大阪、名古屋、・・・ 任意の文字が入ります。 同じ日付で大阪が連続する事はありません。 A列の日付が連続する場合はB列に大阪、東京、名古屋などの他の文字が 入力された事になります。 C列には数字が入力されます。 シート2にはA列に日付が入ります。これは1行につき一つの日付しかはいりません。 B列にはすでに大阪とすべてのセルに入っています。 C列に数字を入れたいのです。 内容は シート1のB列に大阪と入力された場合のみ、その横(C列)の数字が シート2のC列に反映させたいのです。 当然、行数はシート1とシート2では異なってきます。 例 (シート1)    A        B       C 1 10/18    東京      200 2 10/18    名古屋     100 3 10/18    大阪      150 4 10/19    大阪      200 5 10/20    名古屋     300 6 10/20    大阪       80 (シート2)(A列B列は最初から入力済です)    A        B       C 1 10/18    大阪      150 2 10/19    大阪      200 3 10/20    大阪       80 こうなるようにシート2のC列に式を入れたいのです シート1のB列に大阪と入力された場合にシート2のC列に数字が勝手に 入力されていくという形です。

関連するQ&A