• ベストアンサー

エクセルについて2点ご質問。

いつもお世話になってます。 Win2003 office2003です。 2点ほど色々調べたのですが行き詰ってしまいました。まず1点はA列に「2004/3/20」「2004/4/1」「2004/4/6」・・・と日付があり1月分が何件、2月分あ何件と出したいだけなのですが。現在は並び替えてCOUNTAを使用してます(過去ログを探してこれが一番使えるかな?と) 2点目は シート1のB列に 5 2 3 1 とランダムに数字が入ってます。 シート2のA列に 1 2 3 4 5 と順番に数字が入ってます。 シート1のB列の数字は使用した数字を入れてくのですがどの番号を使用したかわかるようにしたいのです。そのためシート2のA列に入ってる数字とマッチした場合、シート1のA列を反映させたいのですがMATCH関数で#N/Aになってしまいます。 よろしくお願い致します。 なお、大変申し訳ございませんが補足と回答は明日になってしまいます。 ご教授願っておきながら申し訳ございません。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

No.1です。 No.1の補足欄について。 No.4の回答とほぼ同じですが、 Sheet2のB1に、 =IF(COUNTIF(Sheet1!$B:$B,A1),INDEX(Sheet1!$A:$A,MATCH(A1,Sheet1!$B:$B,0)),"") と入力して、下の行へコピーします。

makirabi
質問者

お礼

maruru01さん ありがとうございます。 無事できた上に応用で色々データを引っ張ってこれました。複数の関数の組み合わせはまだ勉強途中でして(^^;; いつも丁寧に教えてくださって感謝しております。 本当にありがとうございました。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

#3のmshr1962です。 #1の補足の件ですが、 =IF(ISERROR(MATCH(Sheet2!$A$2,SHeet1!$B:$B,0)),"",(INDEX(Sheet1!$A:$A,MATCH(Sheet2!$A$2,SHeet1!$B:$B,0),1)) とすればいいかと思います。 MATCH関数で一致する値のみで見つからなければ空白("") 見つかったらSheet1のA列の同じ行をINDEXで表示する。

makirabi
質問者

お礼

回答ありがとうございます。 なぜか「入力した数式に~」で関数埋め込めませんでした。せっかくご回答頂いたのに力量不足で申し訳ございません。 時間のあるときに勉強させて頂きます。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

1点目 #1,2の方のようにCOUNTIFを使う他にSUMPRODUCTを使う方法もあります。 SUMPRODUCT($A$2:$A$63556>="2004/4/1",$A$2:$A$63556<"2004/5/1") で4月の件数になります。 2点目 =COUNTIF(Sheet1!B:B,Sheet2!A1) とすればSheet2のA1セルの使われた回数が表示されます。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

前半は (テストデータ) A1:A10 2004/3/21 2004/3/2 2004/5/23 2004/3/14 2004/2/23 2004/4/23 2004/3/1 2004/3/31 2004/4/1 2004/4/3 A11に16/3月の件数を出すとして =COUNTIF(A1:A10,">=2004/3/1")-COUNTIF(A1:A10,">=2004/4/1") として「5」と答えが出ました。 (1)">=2004/3/1")のように””で囲むこと (2)””の中でも2004/3/1は日付と見てくれること (3)””の中でも>=等複合演算子が使えること が判りました. ------------------- 後半は Sheet3のA1:A4に 1 2 3 4 (順でなくて良い) 関数式はSheet2のA列A1に =IF(ISNA(MATCH(B1,Sheet3!$A$1:$A$5,0)),"","FOUND") と入れてA7まで複写する。 Sheet2のB列に下記を入れると、A列のようになります。 (A列) (B列) FOUND 4 FOUND 2 FOUND 5 6 FOUND 3 7 FOUND 1 (小生の都合で、たまたまSheet2とSheet3でやりました)

makirabi
質問者

お礼

imogasiさん いつもありがとうございます。 質問の書き方が悪くて申し訳ございませんでした。 丁寧にお答えいただきありがとうございます。 ぜひ参考にさせて頂きます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 1つ目。 1月分は、 =COUNTIF(A:A,">=" & "2004/1/1"*1)-COUNTIF(A:A,">=" & "2004/2/1"*1) です。 要は、2004/1/1以上の個数から、2004/2/1以上の個数を引いているわけです。 2つ目 意味がよく分かりません。 >シート1のA列を反映させたいのですが これが分かりません。 実例を挙げてみて下さい。 質問文を読む限りは、シート1のB列に、シート2のA列にある数字を、重複せずに入れていくということでしょうか? その場合、その条件にはずれたらどうしたいのでしょうか?

makirabi
質問者

補足

maruru01さん いつもありがとうございます。 実例なんですがNoの振られた紙ベースのシートがあって全国の拠点に配られてます。配ったシートのNoはわかるのですが、使われていくNoがばらばらなのです。 シート1には使った順番でNo入力していってシート2には配ったシートのNoが入ってます。シート1のA列に使った順番で1.2.3~と入っているのでそれをシートBの一致するNoの横に振りたいのです。 シート1 A列 B列 1  1234 2  1237 3  1233 シート2 A列  B列 1233  3  1234  1 1235   1236   1237  2 いまはCOUNTIFで使った分だけで検索して埋めてます。 ブランクに関しては空白ならうれしいです。 (ISERRORでしたっけ?) わかりにくくてすいません。 よろしくお願い致します。  

関連するQ&A