• ベストアンサー

エクセルで個数を抽出したいのですが・・・。

エクセルで以下のようなデータを作ってます。 アーティストA 曲名A 1999/7/1 アーティストB 曲名B 1999/7/8 アーティストC 曲名C 1999/8/10 アーティストD 曲名D 1999/8/28 ・ ・ ・ アーティストX 曲名X 2003/11/21 全部で600行ぐらいあります。 ここから、関数で1999年の曲の数量を数えたい時、どうすればいいのでしょうか? 私はCOUNTIFを使ったのですが、どうもうまくいきません。誰かアドバイスください。

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

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

たまたま関数に=YEAR(A1)がありますので それを使って既解答のように出来ますが、後学のため 下記を読んで、参考にしてください。 以下は(1999年でなく)2002年の例で述べます。 エクセルの中では、日付は数字です。2002/1/1は 37257と言う数字です。 37257と言う数字はどうしてわかるかと言うと(エクセル上で) =DATEVALUE("2002/1/1")で判ります。 または=DATE(2002,1,1)といれセルの書式を数値にすればよい。(本例では以下E2セルに入っているとする) YEAR関数は日付シリアル値からカレンダー日付に直し、その年をプログラムで計算し、返していると理解すべきものです。 条件の演算子(=,>,<)のあとに入れるセルやリテラルも(リテラル=直接数字を入れること。) (1)セル番地に時  そのセルに文字列37257が入っていること =COUNTIF(A1:A12,">37257") や =COUNTIF(A1:A11,">"&TEXT(E2,"00000")) たまたまエクセルは&を使い数字を結合すると文字数字に直してくれるので、数値の入ったセルでも良い. =COUNTIF(A2:A13,">"&E2) (2)リテラルの場合  文字列37257でないといけません =COUNTIF(A1:A12,">37257") またCOUNTIF関数は =COUNTIF(A1:A5,AND(("<5"),">3")) のようには出来ない関数なので、 2002/1/1を越える日付該当件数(1日含む) 2003/1/1を越える日付該当件数(1日含む) を引いて2002年中の件数とします。 =COUNTIF(A1:A13,">="&E2)のように>=が使えるので使う. =COUNTIF(A1:A12,">=37257")-COUNTIF(A1:A12,">=37622") 37257のところは、も少し自然な記述法があるのは上述のとおりですが、あえて判って欲しいのでこのようにします。 2001/3/4 2001/2/4 2002/12/4 2002/4/5 2002/2/3 2001/12/1 2002/1/1 2003/3/23 の例では5-1=4です。

その他の回答 (4)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

他のセルを使用しないで、かつ、配列式を使用しない方法 例えば、日付けデータが C2:C10 にあるとして =SUMPRODUCT((C2:C10>=DATEVALUE("1999/1/1"))*(C2:C10<=DATEVALUE("1999/12/31"))) または、 =COUNTA(C2:C10)-COUNTIF(C2:C10,"<1999/1/1")-COUNTIF(C2:C10,">1999/12/31") で如何でしょうか。

回答No.3

COUNTIFの条件式には関数を入れることができないし、事故参照もできないので無理だと思います。 こういう場合、行列演算を使います。 A列に年月日が入ってるとして書きますね。 =sum(if(year(A1:A600)=1999,1,0)) と入力し、最後に[CTRL]+[SHIFT]+Enterを入力します。 単にEnterを入れると#N/Aになりますのでご注意を・・・。 あるいは、B列に=year(A1)と言う風にして年だけを取り出し、countifを使うと言う手もあります。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.2

セルA1「アーティストA」、セルB1「曲名A 」セルC1「1999/7/1」にデータがあるとします。 ここでC列の属性を「日付」としておきます。 セルD1に「=YEAR(C1)」と入力し、このセルをデータ行数分(例:C2~C600まで)下にコピーします。 検索データを表示するセルに以下の数式を入力します。 「=COUNTIF(C1:C600,1999)」。 この式の第2引数を検索したい年に入れ替えればok.

  • gattonero
  • ベストアンサー率33% (42/127)
回答No.1

densukeさん、おつかれさまです、 趣味でお気に入り曲リストを作ってらっしゃるんですか。 有効活用したいですね。 さて、日付のデータが「文字列」で入っているのか、 それとも「日付と時刻(実態は数値)」で入ってるのかで、 微妙に違ってくるかも知れませんね。 いくつか方法はあると思いますが、私だったら‥‥。 1)年月日のセルで並び替えをかけて、 2)1999年が出てくる一番上のセルの隣の空いているセルに   「1」と入力します。 3)その下のセルに式を入れて、上のセルの中身に1を足せ、   とやりますと、「2」が表示されているはずです。 4)1999年が出てくる一番下のセルまで、式をコピーすると、   「3」「4」‥‥と自動的にカウンターのように数字が増え、   1999年の一番下のセルの行に出てくる数字が、   お探しの1999年の曲の数量になっているはずです。 また、COUNTIF()がうまくいかなかった理由は、 おそらく、日付が「文字列」ではなく「日付」で 入力されているせいではないでしょうか。 表示は1999/8/10と出ていても、裏で持っているのは数値です。 となると、1999/1/1は「34699」、1999/12/31は「35063」 のはずです。"1999"などで調べてもExcelにとっては「はぁ?」です。

関連するQ&A