• ベストアンサー

行の時の日付表示の仕方

いつもお世話になります。 WindowsXP Excell2003です。 列での日付の表示で 月ごとに変わる 31、30、28、29日の日付を下記の式で対応をしています。 B1 2010 C1 1 A1 =DATE(B1,C1,1) 2010/1/1 A2 =IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,"") 01 A3 =IF(MONTH(A$1+ROW(A2)-1)=MONTH(A$1),A$1+ROW(A2)-1,"") 02 ・ ・ ご教示をいただきたいのは 行で A2~ 日付を表示するときの数式です。 B1 2010 C1 1 A1 =DATE(B1,C1,1) 2010/1/1 A2 ~ よろしく御願いします。

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

  • ベストアンサー
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

横方向に日付を表示したいいうことですね COLUMN関数を使わないといけませんか? 1を加える方法です。 画像で A1に 2010 A2に   4 A3に =DATE(A1,A2,1) B3に =IF(A3="","",IF(MONTH(A3+1)=$A$2,A3+1,"")) 右方向にオートフィル A4に =TEXT(A3,"(aaa)")

dorasuke
質問者

お礼

私が求めていたものでした。 確認をさせていただきましたがばっちりです。 大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

その他の回答 (6)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.5です! たびたびごめんなさい。 前回は大きく外していました。 B1には「年」・C1には「1」が必ず入力されているとして、 A2セルの数式を =IF(MONTH(DATE($B$1,$C$1+ROW(A1)-1,COLUMN(A1)))=ROW(A1),DATE($B$1,$C$1+ROW(A1)-1,COLUMN(A1)),"") として列方向と行方向にコピーしてみてください。 尚、今回も外していたらごめんなさいね。m(__)m

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.6

>ご教示をいただきたいのは 行で A2~ 日付を表示するときの数式です。 式を提示すればよいのですか? 定型式なら、フィルコピーで簡単に作成が基本かも。 毎月28日までは確実にあるので、日付を加算。 29日以後は加算後に月が変わるかどうかで判定し、 その月が終わり(上のセルが空白)なら空白を表示。 ------------------------------------------------- A1:=DATE(B1,C1,1) A2:=A1 A3:=A2+1  : A29:=A28+1 A30:=IF(MONTH(A29)=MONTH(A29+1),A28+1,"") A31:=IF(A30="","",IF(MONTH(A30)=MONTH(A30+1),A30+1,"")) A32:=IF(A31="","",IF(MONTH(A31)=MONTH(A31+1),A31+1,"")) とか、 A30:=IF(A29+1<=DATE(YEAR(A29),MONTH(A29)+1,0),A29+1,"") A31:=IF(A30="","",IF(A30+1<=DATE(YEAR(A30),MONTH(A30)+1,0),A30+1,"")) A32:=IF(A31="","",IF(A31+1<=DATE(YEAR(A31),MONTH(A31)+1,0),A31+1,""))

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! せっかく数式を考えていらっしゃるので、 余計なお世話になるかもしれませんが・・・ A1セルの書式設定の表示形式をユーザー定義から d としておきます。 そして、A1セルに =IF(COUNTBLANK($B$1:$C$1)>0,"",IF(MONTH(DATE($B$1,$C$1,ROW(A1)))=$C$1,DATE($B$1,$C$1,ROW(A1)),"")) という数式を入れ、オートフィルで31日までコピーしてはどうでしょうか? これで大の月・小の月の対応も出来るはずです。 尚、数式の前半部分はB1・C1セルが空白の場合のエラー処理ですので それを考えなければ =IF(MONTH(DATE($B$1,$C$1,ROW(A1)))=$C$1,DATE($B$1,$C$1,ROW(A1)),"") でもOKだと思います。 以上、参考になれば幸いです。m(__)m

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

多分ご質問の直接の回答としては, 縦↓に数字を1,2,3と増やすにはROW関数 横→に数字を1,2,3と増やすにはCOLUMN関数 がそれぞれ使えます。使い方はほぼ一緒です。 #以下余談 >31、30、28、29日の日付を下記の式で対応をしています 割と多くの皆さんが,上から下まで(左から右まで)同じ数式で計算できた方が綺麗だと感じていらっしゃるのでしょうけど,現実的には「1日から28日まで」は,何月であっても""にはなりません。IF判定する必要は最初から無いというお話しです。 A1: =DATE(年セル,月セル,1) A2: =DATE(年セル,月セル,2) (勿論ROW/COLUMNで2の代わりは可) A3: =DATE(年セル,月セル,3) 29日のセル: =IF(MONTH(DATE(年,月,29)=月セル,DATE(年,月,29),"") 30日のセル: =IF(MONTH(DATE(年,月,ROW(A30))=月セル,DATE(年,月,ROW(A30)),"") 31日のセルも同じ。

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

noname#113381
noname#113381
回答No.2

答えにはなってないと思いますが、EXCELの「日付」は、基本的に「シリアル番号」という代物を使って日付を計算しています。 あなたが示した数式を、A2、A3に入れて、それぞれのセルを右クリック→「セルの書式設定」→「表示形式」タブ→「日付」を左側リストからクリック →右側の「種類」内からご希望の表示形式を選んでいただければ、何の問題も無いと思います。 それに、月によって最終日が異なる場合でも、EXCELの「シリアル番号」ひとつで、すぐに割り出してくれます。(無駄に28~31日までの対応した数式を用意する必要はありません。) これが、EXCELの便利な点です。 今のところ、シリアル値から日付をスバリ割り出す関数はありませんが、もうちょっと手間を掛けたいなら、 セルA2の場合、 =YEAR(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,""))&"/"&MONTH(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,""))&"/"&DAY(IF(MONTH(A$1+ROW(A1)-1)=MONTH(A$1),A$1+ROW(A1)-1,"")) で、ご希望の表示にできますし、YEAR , MONTH , DAY の間の 「&"/"&」の " "(ダブルクォーテーション)内は、「年」「月」「日」のように、適宜に変える事が出来ます。 分かりにくくてスミマセン。 多分、後者の方が、ご質問の趣旨に沿った形かもしれません。

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ご質問は、今ご自身で作成した数式以外のものに変更なさりたいということですか?  ご参考 http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q-a/q_keisan_hiduke.html

dorasuke
質問者

お礼

大変お手数掛け有難うご゛いました。 今後ともご指導賜りますようよろしく御願いします。

関連するQ&A

  • 日付を表示

    H3に日付を入力してます。 B6にこの関数を入力してます。 =IF(DATE(YEAR($H$3),MONTH($H$3),1)*DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),"") これをB6~↓にコピペしてます。 なんだか違う気もしますが、無事に表示されてます。 やりたい事は、月によって日数が変わるとき例えば 29日や31日など この時現在は空いたセルによく月の1日や2日が表示されるのを空白にしたいのです。 後上記の関数以外の用方法がありますか! ちなみにC列には、WEEKDAY関数で曜日を表示させてます。 おねがいします。

  • 該当月に同文字列が複数又は1つの時それぞれ一つ

    いつもお世話になります。 WINDOWS7 EXCELL2010 です。 参照図で説明します。 C1 =DATE(D1,E1,1) E1 に 9 を入力すると、 A列の中から9月に該当するIDを D2 : D6 のように抽出したいのですが どんな数式なのか御指導を仰ぎたいです。 よろしくお願いします。 参考に 下記で月毎の条件がないまでなんとかわかっているのですが B列 日付 I2 =IF(COUNTIF($B$2:B2,B2)=1,ROW(),"") L2 =IF(COUNT($I$1:$I$20)<ROW($A1),"",INDEX($B$1:$B$20,SMALL($I$1:$I$20,ROW($A1))))

  • #VALUE!表示の解決方法

    いつもお世話になります。 WIN7 EXCELL2010 です。 現在は1日~月末の合計金額を月が替わる毎に表示しています。 入金の21日~翌月の20日締切で翌月の5日の入金にあわせて月毎の金額表示に変更したい。 参照図で説明します。 A(m/dd) B(文字列) C(数値) 列はユーザーフォームにて入力 D2 =IF(MONTH(A2)=MONTH(A3),"",SUMPRODUCT((MONTH(OFFSET($A$2,0,0,COUNT(A:A)))=MONTH(A2))*OFFSET($C$2,0,0,COUNT(A:A)))) E2 =IF(MONTH(F2)=MONTH(F3),"",SUMPRODUCT((MONTH(OFFSET($F$2,0,0,COUNT(F:F)))=MONTH(F2))*OFFSET($C$2,0,0,COUNT(F:F)))) F2 =IF(A2="","",WORKDAY(DATE(YEAR(A2),MONTH(A2)+1+(DAY(A2)>20),5)-1,1,祭日)) D列(1日~月末)の数式だと、例えば「D12 D13」などに#VALUE!の表示が出ません。 しかし「E12 E13」には#VALUE!の表紙が出ます。 A列とF列の違いは数式が入っているかいないかのようです。 このE列の 「#VALUE!」 の表示がでないようにするには、E列の数式をどう変更すればいいかご指導を仰ぎたいです。

  • SUMPRODUCTで月毎の計の時に#VALUE!

    いつもお世話になります。 WIN7 EXCELL2010 です。 例えば添付図でB14に日付を入力するとJ列に月が替わるところで#VAUE!が表示されます。 ただしD列の個数を入力するとD列は正しく表示されます。 この#VALUE!を表示しない方法はないでしょうか。 3の行の各列には、 A =IF(B3="","",TEXT(B3,"mm")) B C D は手入力 E =IF(OR(B3="",C3=""),"",TEXT(B3,"yymm")&C3) F =IF(C3="","",VLOOKUP(C3,商品管理!$A$2:$B$211,2,FALSE)) & " " G =IF(C3="","",VLOOKUP(C3,商品管理!$A$2:$C$211,3,FALSE)) & "" H =IF(G3="","",D3*G3) I =IF(ISBLANK(D3),"",SUM($H$2:$H3)) J =IF(MONTH(B3)=MONTH(B4),"",SUMPRODUCT((MONTH(OFFSET($B$2,0,0,COUNT(B:B)))=MONTH(B3))*OFFSET($H$2,0,0,COUNT(B:B)))) 以上ですがご指導を仰ぎたいのですがよろしくお願いします。

  • エクセルの空白を詰めて別シートに表示

    sheet1のデータを参照して、空白を詰めてsheet2へ表示させたいんです! sheet1(元データになるもの)  A列 |B列|C列・・・ 1行目A|100|100 2行目B|  |200 3行目C|100| 4行目D|  |200 5行目E|100| 6行目F|  |100 ・ ・ sheet2(sheet1でB列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目C|100 3行目E|100 sheet3(sheet1でC列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目B|200 3行目D|200 4行目F|100 sheet2のA1に下記の式を入力してA列とB列に数式をコピー =IF(COUNT(Sheet1!$B$1:$B$6)<ROW(A1),"",INDEX(Sheet1!A$1:A$6,SMALL(IF(Sheet1!$B$1:$B$6<>"",ROW($A$1:$A$6)),ROW(A1)))) すると下記のように表示されます。 A1=A     B1=100 A2=#NUM! B2=#NUM! A3=#NUM! B3=#NUM! 4行目から空白 sheet2のA2のところにエラーが出ていますが、「関数の引数」のところで「数式の結果」には「100」と 正解が表示されています。(B2、A3、B3も同様に)数式の結果のところには正解が表示されています。 答えの「#NUM!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • EXCEL IF関数での日付の認識について

    よろしくお願いいたします。    A         B 1 2006/07/30    OK 2 2006/8/8      A列の日付が2006/7/31以前だったらB列にOK表示、 2006/8/1以降であったらB列に空白””というIF関数を使った数式をお教えください。 MONTH を使ったりしたのですが、年度単位(4月から翌年3月)の対象のため「MONTH(A1)<=7」と指定すると、2007/3/31も対象になってしまいました。

  • ○のついた行の数を表示させる

    ・・A・・B・・C・・D・・E・・F 1・・・・・・・2・・4・・5・・7 2・○ 3 4・○ 5・○ 6 7・○ 8 上記A列に○が表示されている行を抜き出し、その行数をC1~F2まで表示させたいのですが、できるでしょうか。 できればマクロを使わずROWやIF関数のみで教えていただければ幸いです。

  • 月毎の計の時に#VALUE!その~2

    添付する画像をミスして再度になります。 いつもお世話になります。 WIN7 EXCELL2010 です。 例えば添付図でB14に日付を入力するとJ列に月が替わるところで#VAUE!が表示されます。 ただしD列の個数を入力するとD列は正しく表示されます。 この#VALUE!を表示しない方法はないでしょうか。 3の行の各列には、 A =IF(B3="","",TEXT(B3,"mm")) B C D は手入力 E =IF(OR(B3="",C3=""),"",TEXT(B3,"yymm")&C3) F =IF(C3="","",VLOOKUP(C3,商品管理!$A$2:$B$211,2,FALSE)) & " " G =IF(C3="","",VLOOKUP(C3,商品管理!$A$2:$C$211,3,FALSE)) & "" H =IF(G3="","",D3*G3) I =IF(ISBLANK(D3),"",SUM($H$2:$H3)) J =IF(MONTH(B3)=MONTH(B4),"",SUMPRODUCT((MONTH(OFFSET($B$2,0,0,COUNT(B:B)))=MONTH(B3))*OFFSET($H$2,0,0,COUNT(B:B)))) 以上ですがご指導を仰ぎたいのですがよろしくお願いします。

  • 日付開始を1ヶ月前からの表示にする数式

    http://okwave.jp/qa/q7468139.html 上記にて質問させていただいています。 回答いただいた方の数式を当てはめれば、問題なく表示できるようにはなったのですが、 3月分・・・2/16~3/15 4月分・・・3/16~4/15 というように、月を1ヶ月マイナスして表示をしたいのですが、その場合、 どこの数式に入れたらよいでしょうか? 色々試したのですが、うまく行きませんでした。 A4セルに入れた数式は、 =IF(OR(A$1="",A$2=""),"",IF(DATE(A$1,A$2,ROW(A1)+15)<=DATE(A$1,A$2+1,0),DATE(A$1,A$2,ROW(A1)+15),IF(ROW(A1)<=16,TEXT(ROW(A1)+15,"00"),IF(AND(ROW(A1)>16,DATE(A$1,A$2+1,ROW(A1)-16)<DATE(A$1,A$2+1,16)),DATE(A$1,A$2+1,ROW(A1)-16),"")))) 上記数式では、6月分 6/16~スタートの数式になりますが、6月分 5/16~の表示にしたいのです。 すみませんが、よろしくお願いします。

  • 日付を文字列ではなく、日付として表示させたいです!

    Excelで下記の数式を使用し、隣のシートから日付(〇〇〇〇/〇〇/〇〇の形式)を 表示させたいのですが、何故か文字列として表示されてしまいます。 (2020/5/20なら43971と表示され、表示形式を「日付」で選択しても変わりません) 日付として表示するにはどうしたら良いでしょうか。 また、同じセルでも日付ではなく、単語が表示されるケースもあるので、その場合は同じ単語が表示されるようにしたいです。 ◆使用している数式 IF(ISERROR(VLOOKUP(G10,Aシート!$B$2:$F$30,5,FALSE)),"",VLOOKUP(G10,Aシート!&B$2:$F$30,5,FALSE)&"") 空欄の時は、0やエラーを表示させないように式に組んでいるので、 もしかしたら、その影響かもしれません... excelにあまり詳しくなく、ご教示頂けましたら助かります。 よろしくお願いいたします。

専門家に質問してみよう