- ベストアンサー
エクセル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列に大阪以外の文字が入った場合は無視です。 大阪と入った場合のみです。 どなたか御教授下さい。 補足が必要なら申し付け下さい。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
No.4です。補足ありがとうございます。質問を勘違いしていました。 それで、改めて考えてみたら例と同じ結果が出るようになったのですが、No.2さんの回答と全く同じになりました。 なので、No.2さんの式でうまくいくはずなのですが…。シート2のC3に式を入れて、下にコピーしてみてください。
その他の回答 (6)
- merlionXX
- ベストアンサー率48% (1930/4007)
choroqさんこんばんは、No2のmerlionXXです。 >御指示通り入力しましたがうまくいきませんでした。 どのようにうまくいかないのでしょうか? No2で書いたのはご指定によりC3セルに入れる例ですが、もしC1セルだとしたら =SUMPRODUCT((Sheet1!$A$1:$A$100=A1)*(Sheet1!$B$1:$B$100="大阪")*(Sheet1!$C$1:$C$100)) として、下へドラッグして式をコピーしてみてください。 回答への補足で書かれたとおりの答えがでますけど・・・。
お礼
お礼が遅くなりました。 こちらのやり方が間違っていました。 ご指摘の方法で無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。
- hirorin00
- ベストアンサー率50% (446/884)
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標準のマクロの記録で取ってみました。 これで一応自動化でしょうか… これしか思いつきません。 すみません。
お礼
お礼が遅くなりました。 無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。
- ham_kamo
- ベストアンサー率55% (659/1197)
シート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)),""))
補足
早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート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)
次の方法は如何でしょうか。 シート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キーを同時押下して下さい。
補足
早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート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)
仮に100行目まであるとすれば、 =SUMPRODUCT((Sheet1!$A$1:$A$100=A3)*(Sheet1!$B$1:$B$100="大阪")*(Sheet1!$C$1:$C$100))
補足
早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート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)
はじめまして 日付と行の関係が今ひとつわかりかねるのですが… sheet2のC1に「=IF(AND(A1=Sheet1!A1,Sheet1!B1="大阪"),Sheet1!C1,"")」を入れて必要なだけ下へコピーしてください。 C1セルの右下にカーソルを合わせるとカーソルの形が十字に変わりますので、そこで左クリックしたまま、下へ引き摺って放せばOKです。 違っていますでしょうか?
補足
早々に有難うございます。 御指示通り入力しましたがうまくいきませんでした。 説明が悪かったのかもしれませんので再度補足します。 シート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列に数字が勝手に 入力されていくという形です。
お礼
お礼が遅くなりました。 こちらのやり方が間違っていました。 ご指摘の方法で無事にうまくいきました。 助かりました。感謝致します。 いろいろと有難うございました。