• ベストアンサー

日付の

WindowsXP Office2003 です。 エクセルで20シート位に同じ形式の表があります。 各シートのE3:E14には、日付を入れ J3:J14には、=IF(E3="","",TEXT(E3,"m"))  〈E3 ⇒ E14 と相対値です〉 と入れてあります。(月を数値として表示させたかった為) この表は必ずE3が4月○日、E4が5月○日になるとは限りません。 シートによっては、E3が5月○日や6月○日になったり E3が8月○日、E4が8月△日と 同じ月が2回入力される場合もあります。 それを集計シートのC3~C14に 全部のシートの4(月)は○個 5(月)は○個・・・ という集計を出したいのです。 集計シートのA3~A14に検索値として 4 5 6 …省略… 12 1 2 3 と(標準書式で)入れてあります。 C3セルに =COUNTIF(sheet1!$J$3:$J$14,A3) と入れるとヒトツのシートだけですが4(月分)の個数が出ました。 しかし、 =COUNTIF(sheet1:sheet20!$J$3:$J$14,A3) と入れると#VALUE! となってしまいます。 3D集計のように全シートの集計はできませんか? 又、 各シートのJ3:J14にTEXT関数を作る必要がない方法はありますか? (日付が入力してあるセルからダイレクトに COUNTIF等で月の個数を数えられる方法)  よろしくお願いします。

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

  • ベストアンサー
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.3

Sheet1~Sheet20の各シートに作業列を設けるのはイヤですか。 もしイヤでなければ、Sheet1~Sheet20を全選択して空いているセル(例えばL3:L14)に集計シートのA3:A14をコピー、L列を検索値としてM3:M14にCOUNTIF関数で各シートの数値を一旦出しておき、集計シートのC3を選択して =SUM(Sheet1:Sheet20!M3) で串刺し集計した方が作業としては簡単なように思いますが……。 なお、後段のTEXT関数を作らない方法はNo.2 mshr1962さんの下の式 =SUMPRODUCT((MONTH(INDIRECT(B1&"!$E$3:$E$14"))=A3)*1) でOKですが、B1の定義がなかったので、COUNTIFでなくこの式を使うならSheet名が表示されるよう、B1に次の式の入力が必要となります。 =MID(CELL("filename"),FIND("]",CELL("filename"))+1,31)

vi_vi
質問者

お礼

この方法で作らせていただきます。 ありがとうございました!m(_ _)m

vi_vi
質問者

補足

お返事ありがとうございました! この方法は、とてもわかりやすいし 私のレベルにはベストです! これならSheetを間に挿入しても 自動的に集計できますね。 しかし、Sheet名を参照する関数は 今まで知らなかった関数だらけです。 MID 関数とは・・・ 文字列 CELL("filename"),FIND("]", 開始位置 CELL("filename"))+1, 文字数 31 という意味ですか? CELL("filename"), FIND("]", これらも関数のヘルプを見てみたのですが ???意味がよくわかりません。 すみませんが詳しく教えていただけませんか? 又は、参考サイトを教えていただけませんか? 使えればとても便利そうですよね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

#2,4のmshr1962です。 残念ながらCELL関数で表示されるのは関数のあるシートです。 各シートで表示したセルをリンクする形ですね。 もう一つの方法としてマクロを使う方法があります。 参考になるサイトを載せておきます。 http://www.nurs.or.jp/~ppoy/access/index.html ここでExcelの15行目の「シート名一覧と各シートへのハイパーリンクを新規シートに作成する方法 」

vi_vi
質問者

お礼

ご丁寧にありがとうございます! こちらのサイトは まだちらり と見ただけですが ワクワクするような宝箱のようなサイトですね! これからも参考にさせていただきます。 今回の書類はNo.3zenjeeさんが回答して下さった方法で作成させていただこうと思いますが 他の事に使えそうな沢山の事を わかりやすく教えて下さり 本当にありがとうございました!m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

#2のmshr1962です。 CELL関数は情報関数です。 CELL("filename")の場合は「ファイルの絶対パス[ブック名]シート名」を表示します。 例 今のシートがCドライブのEXCELフォルダのEXCELブックのEXCELシートなら CELL("filename")="C:\EXCEL[EXCEL.XLS]EXCEL" ですね。 FIND関数は文字列内の特定の文字の位置を探します。 これで"]"を見つければ、上記からMID関数でシート名を抽出できます。 最後の31は文字の長さの指定ですが、シート名の文字数以上であれば別の数値でもOKです。

vi_vi
質問者

補足

ありがとうございます! CELL関数はエクセルのヘルプを見ても ???でしたが、 意味がよくわかりました。 同様にFIND関数、MID関数の意味も ありがとうございました。 これは、そのシート自身のシート名を 表示してくれる訳ですね? では、次の、その次の・・・シート名を表示させる という事には応用できるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

=SUMPRODUCT((MONTH(sheet1!$E$3:$E$14)=A3)*1) で出来ませんか? Sheet名を別のセルで参照するなら =SUMPRODUCT((MONTH(INDIRECT(B1&"!$E$3:$E$14"))=A3)*1)

vi_vi
質問者

補足

早速お返事いただき ありがとうございました! 日付の月だけをダイレクトに参照するには この方法があるのですね! これで数式の列を一行削除する事ができます。(J列) Sheet名を別のセルで参照する というのは この場合はB1にSheet1の名前を入れておく  という意味ですか? 20シート位ある場合はシート名の列をどこかに作って(この場合はB列ですね?)INDIRECT関数で 参照させる という意味ですね? あと、20シート位の"個数を数える3D集計"については何かご存知ありませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • aroi-aroi
  • ベストアンサー率34% (40/115)
回答No.1

=COUNTIF(sheet1:sheet20!$J$3:$J$14,A3) が間違いですね。 =COUNTIF(sheet1!$J$3:$J$14,A3)+COUNTIF(sheet2!$J$3:$J$14,A3)+…+COUNTIF(sheet20!$J$3:$J$14,A3) としなければいけません。 「sheet1:sheet20!$J$3:$J$14」の部分の範囲指定が よくないです。

vi_vi
質問者

補足

早速お返事頂きありがとうございます。 部分の範囲指定がエラーの原因だというのが わかりました。 そして、この方法でできました! しかし、シートが増えたら補修が必要ですね? SUMの3D集計の場合、最初のシート:最後のシート と指定しておくと 間に新規シートを挿入しても そのシートが自動的に加算されるので そのような作り方ができないかな と 思ったのですが、どうでしょうか? (最初から多めに作っておけば良いのですが 参考までに 教えていただけたら 嬉しいです)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 日付の集計

    データベースに 2006/2/22 9:19:10 2006/2/22 18:29:10 2006/2/23 16:41:45 2006/2/24 15:29:23 … のように、日付が入力されているのですが、別シートで2月22日は●個、2月23日は●個、のように集計したいのですが、どのようにすればよいでしょうか。 COUNTIFを使用するのだと思っていたら、第2引数の書き方がわかりませんでした。

  • エクセルのデータを利用して集計表(1日ごと)をつくりたい

    エクセルに下記のような入力データがあります。 (AやBは品番が入ります) 6月1日 A 東京 バス    6月1日 B 大阪 車 6月1日 A 東京 車 6月2日 C 京都 バス 6月2日 D 京都 車    ¦   ¦ 6月30日 A 大阪 車 これを、 日にちごとに次のような表で集計したいです。 (集計表は様式が決まっていて、エクセルで作成されている) 『車』   東京 大阪 京都 A ○個 ○個 ○個 B ○個 ○個 ○個 C ○個 ○個 ○個 『バス』   東京 大阪 京都 A ○個 ○個 ○個 B ○個 ○個 ○個 C ○個 ○個 ○個 このとき、日にちごとのエクセルシート (2007.6.1シート ~~ 2007.6.30シートまで) 30シートで集計することは可能でしょうか? 面倒でも一度作ってしまえば、 来月からも、入力データを変更するだけで、 集計は可能かと思ったのですが・・・ 日付ごとのシートにしたときに、 どのような条件で集計すればよいのかわからなくなってしまいました。 エクセル初心者で申し訳ないですが、教えていただけますか? よろしくお願いします。 ※ちなみに、ワードの様式(集計表)へ差し込んでの作成は  難しい(面倒でしょうか?)

  • エクセルで日付を手入力しているセルの入力月をカウントし、シートがまたがっている場合の足し算の仕方を教えてください。

    教えてください。 エクセルで日付を手入力しているセルの入力月をカウントし、シートがまたがっている場合の足し算の仕方を教えてください。 okwebで質問をしたときに、教えて頂いた方法で追加の質問があります。 シートをまたがっているものもあるので足し算をしたいのですが、 なかなかうまくいきません。 足し算の書き方を教えてください。 表示の仕方は、4/1と入力し、ユーザー定義で平成18年4月1日と表示しています。 (例) シート1には、4月と5月のデータがあり、 シート2には、5月と6月のデータがあり、 シート3には、5月と6月と7月のデータがあります。 4月の個数を求める時は、下記の関数でうまく計算出来ましたが、 5月の個数を求める場合は、シート1とソート2を足したものが個数となります。 式の書き方を教えてください。 ■countifを使ってはどうでしょう。   例)A1-A5の範囲の8月の個数を求める場合。    =COUNTIF(A1:A5,">=8/1")-COUNTIF(A1:A5,">=9/1") ■方法はいくつかあります。  #1の方と同じで範囲の計算だと  =SUMPRODUCT(($A$1:$A$100>="2006/08/01"*1)*($A$1:$A$100<="2006/08/31"*1))  ↓過去の質問内容 『A1に申し込み月という項目を作り、 その下に(A2,A3・・・)日付を入力していきます。 例えば、8月2日,8月14日,9月3日とか9月22日,9月28日,9月30 日・・・など 8月が入っているセル、9月が入っているセル、10月が入っているセルの個数をカ ウントするにはどうしたらよいですか。 この例の分ですと、 別のシートに8月は『2』と表示し、(2日・14日分) 9月は『4』と表示したいです。(3日・22日・28日・30日)』

  • 日付データセルの日付範囲によるセル数を求める

    A1~C5セルにランダムに日付を入力したデータから、ある範囲の日付のセルの個数を求める方法はありますでしょうか。データが数字とか文字の場合は=COUNTIF関数で求めることが出来ましたが日付の場合うまくいきません。求める日付の範囲は(当日+15日~当日+8日)の範囲のセル数をD8セルに記入したいのですが・・・・なお、よけいなことかもしれませんがA1~C5セルの中には文字セルも含まれています。またデータセルは条件付き書式で( )内範囲のものは着色セルにしています。WIN98でエクセル97を使用しています。よろしくお願いいたします。

  • 2つのセルの条件に合ったセルの個数

    A 日付 B名称 C可否(○×)も表でA日付が今日より前のものでなおかつCが○のセルの個数を求めたいのですがうまくいきません。 (1) AND(COUNTIF(A1:A10,"<"&TODAY()),COUNTIF(C1:C10,"○")) とするとFALSEと表示される。 どこが悪いのでしょうか?

  • エクセルVBAについて教えてください

    エクセル2003 シート1     A       B      C 1  3月1日 A 100     *A列はカレンダーコントロールより選択としています 2  4月1日 B 100 3  3月1日 C 200     *B列はコンボボックスより選択としています 4  3月1日 D 200 5  4月1日 E 300     *C列は直接入力としています 6  4月1日 F 300 7  3月1日 G 100 8  4月1日 H 200 9  3月1日 I 200 10  4月1日 J 100 上記シート1の表のC列を下記シート2のC列に条件集計する シート2    A       B       C 1  3月1日   A~E     500    *選択した日付ごと及びA・B・C・D・Eの集計  2  3月1日   F~J     300    *選択した日付ごと及びF・G・H・I・Jの集計     3  4月1日   A~E     400    *選択した日付ごと及びA・B・C・D・Eの集計    4  4月1日   F~J     600    *選択した日付ごと及びF・G・H・I・Jの集計  すいませんが上記コードを教えてください 困ってます よろしくお願いします      

  • 【Excel】日付を条件のひとつに指定してデータ集計

    Excel2003を使用しています。 Sheet1   A    B         C 1 4/1  (株)Excel    \100 2 4/1  ACCESS    \300 3 4/1  Excel(株)    \200 4 4/2  Word       \150 5 4/2  Excel       \100 6 4/3  ACCESS(有)  \200 7 4/3  Excel       \100 7 4/3  (有)ACCESS  \100 が入力されている表があります。 Sheet2に   A    B    C 1 4/2  合計値 個数 2 4/3  合計値 個数 Sheet2のA1セルに日付(仮に4/2とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にExcelとします)を検索し、両条件に一致したC列の合計を Sheet2のB1セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 又、上記同様で Sheet2のA1セルに日付(仮に4/3とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にACCESSとします)を検索し、両条件に一致した個数を Sheet2のC2セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 関数で試してみたのですが、うまくいかなかったので、質問させていただきました。 よろしくお願いします。

  • 同一Book内の複数のsheetから日付を基準に情報を抽出して集計

    各先生方 いつも大変お世話になっております。 複数の車両が日毎に走行した際の情報を月末に集計する作業をしております。 一定範囲のセルを複数のsheetからコピーしている単純作業なのですが、稼働日数が多くなると想像以上に時間が掛かり、本業が疎かになるため困っております。 内容はA車、B車、C車、D車、E車、F車、G車なる7台の走行情報をそれぞれ車両毎にsheet分けし、“○○月集計sheet”と共にBook名「○○月車両情報」内に収めております。 1月を例に・・・ Book名「1月車両情報.xls」 → “1月集計sheet”、“A車sheet” ・・・ “G車sheet” sheet内の各列記載区分は共通で以下のようにしております。 B列:日付|C列:運行車両|D列:運行者名|E列:ルート記号|F列:距離  1/1     (例)A車     (例)Aさん     (例)B     (例)185  1/2   ・   ・   ・  1/31(未稼働日は日付も空欄) ※A2セルからA32セルまで1~31の数字が記載されております。 ※全てのsheet共通で1行目はタイトル、2行目から32行目(31日分)までが運行情報となります。 各車両の運行はそれぞれが日毎に異なり、毎日稼動している訳ではありませんので、稼動していない日はB~Fまで全てのセルが空欄です。 日付情報を基準にB~Fまでの運行情報を一括集計したく望んでおります。 例えば、B車、C車、F車の3台が1月1日に稼動、A車、D車の2台が1月4日にそれぞれ稼動した際、各車両sheet内のA列に記載された「1/1」の日付情報を元に日付を含むB~Fの対象セルが1月集計sheetへ反映されるコードを求めております。 尚、集計sheetへは日付の若い順に上部セルへ反映させたいので、「1/4」の日付情報を含むA車、D車の情報(B~Fの対象セル)はB車、C車、F車の情報の下部に集計させたく望みます。 車両区分のABCには序列を設けませんので、同じ日付の中で順序が変わっても問題ありません。 また、現状では7台の車両で運行しておりますが、今後、台数が増えることも予測されますので、数量変更にも対応していると助かります。 何方様かご教授宜しくお願い致します。

  • 「JANコード」と「日付」で販売個数表を作成したい

    エクセルで販売個数表を作成していますが、うまくいかず困っています。 Sheet1のA列に現在在庫している全ての商品のJANコード、B1~AF1にある月の1日から31日までの日付が日付データとして入っています。別ブックのSheet1にA列(販売日)、B列(JANコード)、C列(販売個数)のデータがあり、この販売個数を前述の個数表にJANコードと日付を対応させて入力したいのです。(例えばMというJANコードの品物が14日に2個売れたとしたら、MというJANコードの行の14日の列のセルに2と入れたいということです。)尚、別ブックの販売個数のデータは各商品ごとに1日の総売り上げ個数が出ているため、合算をする必要はなく、C列の数字をそのまま該当するセルに直接入れることができればOKです。 できることならマクロを使って、「別ブックを参照してデータを読み込み、販売個数表に個数を反映」させたいのですが、どのように作ったらよいのか具体的に教えていただけないでしょうか?関数を使って入力する方法もあれば是非、お願いします。

  • 【エクセル】離れたセルのCOUNTIF関数

    こんにちは。 エクセルのCOUNTIF関数についての質問です。 各セルに以下のような数値が入っている表で・・・  A=10  B=00  C=20   D=30   E=00   F=40   G=50  AとCとEとGのセルを選択し、0以外のセルの個数を数えるとき COUNTIF関数で =COUNTIF(A,C,E,G,"<>0") という数式を立てたのですが、エラーとなってしまいました。 最終的には =((COUNTIF(A,"<>0")+(COUNTIF(C,"<>0")+(COUNTIF(E,"<>0")+((COUNTIF(G,"<>0")) という数式をたてて計算は出来たのですが、もっと簡単(?)な式はあったりするのでしょうか? ご存知の方がいらっしゃいましたら是非お教え下さい。

専門家に質問してみよう