• ベストアンサー

エクセルについて

まず、H6に日付と時間が記入されたセルがあります。 (例)2009/11/09 (月)15:00 ↓ A2に「=TODAY()」を記入したセルがあります。 ↓ I6に日付だけ取り出した「=LEFT(H6,10)」の記述があります。 ↓ B2に「=SUMPRODUCT(($C$6:$C$999=$B1)*($G$6:$G$999=$A$2))」という記述で、件数を出したいのですが、I6を日付と認識してくれず件数がB2に表示されません。 表示させるにはどうしたらいいのでしょうか? 教えて下さい。

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

  • ベストアンサー
回答No.1

文字列「2009/11/09 (月)15:00」から最初の10文字を取り出した 「2009/11/09」は文字列です。=today()で得られた日付シリアル値 と比較しても、絶対に等しくなりません。比較する時は、データの 型を意識しましょう。 というわけで、 ・I6を=datevalue(left(H6,10))として日付シリアル値に変換する。 ・A2を=text(today(),"yyyy/mm/dd")として文字列に変換する。 どちらかの処理をしてみてください。

その他の回答 (5)

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

関数の引数は「セルの値」です。関数はセルの価を使って、セルの値として、数や文字列を返します。 質問者が見ているのは「=LEFT(H6,10)」は、セルの見た目=表示形式を適用された見た目、を見ています。関数ではこれをやってはいけません。位取りのカンマなども同じです。 日付や年、月、日を取り出すには、また関数を使います。 NOW()は日付+時刻、Today()は日付部です。 これはTodayはそのままセル番地を使えば良い。 >「=LEFT(H6,10)」は必要ないと思う。=NOW()のことか? 日付セルのセルの値は日付シリアル値という正整数です。 文字列と考えてはいけない。年を取り出すのも=LEFT(H6,4) など全くの的外れ。エクセルが複雑な計算をして、今日は日付シリアル値は40126だが、これは2009年だとかを 割り出している。私たちには複雑すぎてマニア以外は自分ではやれない。その代わりYEAR関数で2009を出してもらう。 ーー 「=SUMPRODUCT(($C$6:$C$999=$B1)*($G$6:$G$999=$A$2))」という式には、I6というセルは関係してないように思うが、どうなっているのだろう?

nemuu0123
質問者

お礼

ありがとうございました。 皆さんのアドバイスのおかげで、 何とか表を完成させることができました。 助かりました!!

  • osaruye
  • ベストアンサー率33% (8/24)
回答No.5

#3です。 文章から「今日という日付と一致する何かを数え件数を表示したい」 のかなーとは思うのですがどういった内容の表なのか見えないため、 回答できかねます。 H列には日付と時間が随時下の方に記入されて いくという理解でいいのでしょうか。 また、C列とG列には何が入っているのでしょうか? 回答できるかわかりませんが、詳しく記入して頂ければ 力になれるかもしれません。

nemuu0123
質問者

お礼

ありがとうございました。 皆さんのアドバイスのおかげで、 何とか表を完成させることができました。 助かりました!!

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

H6セルから日付を取り出すには=LEFT(H6,10)は大きな間違いです。 I6への入力の式は次のようにすることが必要です。 =DATE(YEAR(H6),MONTH(H6),DAY(H6))

nemuu0123
質問者

お礼

ありがとうございました。 皆さんのアドバイスのおかげで、 何とか表を完成させることができました。 助かりました!!

  • osaruye
  • ベストアンサー率33% (8/24)
回答No.3

文字列から日付だけを取り出しても文字列のままなので 数値にする必要があります。 VALUE関数で日付にするのですが、 =VALUE(LEFT(H6,10)) で可能です。 余計なお世話かもしれませんが、 文字の取り出しにLEFT関数をそのまま使うと 日付によってはエラーを返す場合がありますので、 LEFT関数をそのまま使うのではなく、 "("までの文字数を数え、その数分だけの文字列を取り出し、 VALUE関数を使って数値化する以下のような式にしてみてはいかがでしょうか。 =VALUE(LEFT(H6,FIND("(",H6)-1)) 上手くいかない場合"("が半角か全角で違う場合があるので 確認してみてください。 上手くいった場合は表示形式を時間にすればOKです。

nemuu0123
質問者

補足

回答ありがとうございます。 やってみましたらできましたが、 表は随時更新されていくのですが、空白の行にこの記述「=VALUE(LEFT(H6,FIND("(",H6)-1))」だけしておいて、 他のセルを後から追加していくとエラーになります。 なぜでしょうか? 何度もすみません。

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

ご質問の意味がわかりません。SUMPRODUCT関数にはH6やI6のデータは全く関係ないように見られますね。どこが問題なのでしょう。

関連するQ&A

  • エクセルの日付について教えてください

    現在、G・H・Iの3(統合したセル)に日付を出す為に=TODAY()と式を覚えさせています。この場合、エクセルを開いた時点で日付が更新されてしまいます、エクセルの内容を変更や訂正をした場合のみ日付を更新できる方法を教えてください。変更対象セルはC9~C28・E9~E28・H9~H28・I9~I28の範囲で変更した時に日付が更新できる方法があればいいのですが、変更対象が広範囲すぎる場合はC・E・H・Iのどれか1列でもかまいません。

  • エクセル関数を教えて

    セルa1にtoday関数が入っていてb1、c1にa1の日付の半年後、1年半後の日付を自動表示したいのですがどういう式を入れればよいですか

  • エクセルの数式について

    すいません。複数の条件付に該当する件数を表示させたいのですが、どうすればよろしいでしょうか。 以前、Aセルが"男"かつBセルが"本人"である件数を表示させたいと質問したところ =SUMPRODUCT(((A1:A7)="男")*((B1:B7)="本人"))という配列数式を教えていただきました。今回はさらに、Cセルに年齢の欄を設けて25歳以上40歳未満であるという条件も附加したいのです。いろいろ私なりに試行錯誤してみたのですが上手くいかずに困っております。申し訳ありませんがよろしくお願いします。 今回も、できれば作業セルをつくらずに直接件数を表示させたいと思っております。 Aセル  Bセル  Cセル 性別   続柄  年齢  男   本人   30  男   子供   10  女   妻     25  男   叔父   45  女   本人   50  男   夫     20  男   本人   35

  • エクセルで条件によって、他のセルに反映させる方法

    こんにちは、教えてください 状況としては シート1のセル A1~A31に1日~31の日付 B1~B31に数字を入力 C1~C31にIFの関数で、C1ならB1に、C2ならB2に特定の数字が入力されたときにその件数を表示するようにしています そこでしたいことですが、例えばC5とC10に件数が表示されたら、シート2に件数がでた日の日付リストができるようにしたいのです うまく説明できませんが、やり方を教えて下さい。お願いします

  • テキストをExcel2000に貼り付け

    .txtを参照してファイル内容を、マクロで Excel2000に貼り付けたいと考えています。 先頭の1行は決まっていて2行目からが 対象になります(コロン区切りのファイルです) コロンは削除してA~Jまでの文字を ExcelのA~Jのセルに貼り付ける 例).txtの記述 START :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J ExcelのA1セルから最大20000行まで対応したいです。 どうかご教授願います。

  • エクセル2003 期間内に当てはまる日付の個数

    いつも回答して頂き、ありがとうございます。 D11セル~H11セルまでに入力された日付の内、D6セルの日付からE6セルの日付の一日前までに当てはまる日付けの個数を集計しようと思い、=SUMPRODUCT(D11:H11>=(D6))*(D11:H11<(E6))と記述しましたが、結果0個でした。 ネット等のサンプルを見ながら記述したのですが思うようにいきません。何処をどう直したらうまくいくのでしょうか?宜しくお願い致します。

  • エクセル :式の表現

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またc1~c4に C1:2006/2/24+時間  (例2006/2/24 07:18) C2:2006/2/23+時間 C3:2006/2/23+時間 C4:2006/2/22+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とC列のデータの日付けが同じものは1つc4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式は=SUMPRODUCT((INT(C$1:C$4)=A1)*1) とすればいいのですが、このC$4という所を特にいくつまでと制限をしないでデータがあるうちは計算対象にする場合はどうすればいいですか。

  • 【エクセル】日付を表示させたいのに割り算になる

    「今日の日付 2012/11/22」(=TODAY())と、その「1か月後の日付 2012/12/22」(=EDATE(A1,1))で、表示させた日付を別の1つのセル上に表示させたいと思っています。 その際、(=A2&A3)というような式を記入するのですが、 表示されるのは「41235 41265」といった、割り算をした結果になってしまいます。 「2012/11/22 2012/12/22」 といったように、日付を同セル上に羅列するにはどうすればよいでしょうか? よろしくお願い致します。

  • エクセルの質問です。

    エクセルの質問です。 例えば、A1・B1・C1セル全てに数字(文字列)が入力されたら、Z1セルにAと表示される。 また、F1・G1・H1・I1セル全てに数字が入力されたらZ1セルにBと表示される。 上記のように指定したセル全てに入力されるとそれぞれA・B・C・Dと4つパターンで表示される ようにしたいのですが、わかりません。 おそらくIF関数で条件を組み合わせて作るのだと思いますが、どなたかご教授お願いいたします。

  • エクセルの日付表示について

    エクセルの日付を1桁ずつ別のセルに表示したいのですが、 何か方法があるでしょうか? たとえばH20.7.25の場合、 1つのセルに1桁ずつ シートに↓のように表示したいのですが。  |  A  |  B  |  C  |  D  |  E  |  F  | 1|H20.7.25| 2|  2  |  0  |  0  |  7  |  2  |   5  | A1の日付を2列目に1桁ずつ表示。 (わかりづらいかもしれませんが・・) よろしくお願いします。

専門家に質問してみよう