月末までの日付データのコピー方法について

このQ&Aのポイント
  • 月途中の日付から月末の日付までのデータをコピーする方法について教えてください。
  • 月途中から月末までの日付データをコピーするためのマクロや関数はありますか?
  • シート2のA列の日付データをシート1から月末までコピーする方法についてご教授ください。見やすく表記する方法がわかりません。
回答を見る
  • ベストアンサー

月途中の日付から月末の日付を

以前日付関連の事で質問させていただいた者です その節はお世話になりました。 http://okweb.jp/kotaeru.php3?q=957464 シート1のA列に日付が入っています 形式は(2004/08/15)です。 日付は飛び飛びで順番に並んでいて、 セルは詰まっています。 A1が2004/08/15 A2が2004/08/17 A3が2004/08/18 という具合で データ最終行はそのつど変わります。 C列には数字が入っています(A列とは無関係)。 シート2のA1に =IF(Sheet1!A1="","",MIN(Sheet1!A:A)) シート2のA2に=IF(A1="","",IF(MAX(Sheet1!A:A)>=A1+1,A1+1,"")) シート2のB1に=A1 シート2のC1に =IF(ISNA(VLOOKUP(B1,Sheet1!A:C,3,FALSE)),"",VLOOKUP(B1,Sheet1!A:C,3,FALSE)) と入れています。 ここでシート2のA2とB1とC1をそれぞれ下方向に コピーもしくは変数でまわしたいのです。 ↑の例で言うとシート1のAの最終行はA3で値は 2004/08/18ですが シート2のA列ではこれをマクロで月末(2004/08/31)まで コピーして、なおかつシート2のB列とC列も 同様に月末まで コピーしたいのですが。 こういったことは可能でしょうか? 見づらくなってしまい、申し訳ありません

  • ennkai
  • お礼率54% (284/525)

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

  • ベストアンサー
  • miwaki
  • ベストアンサー率36% (14/38)
回答No.3

2#の回答関連 C列の関数と同じといっても、B1とあるところはA1に変えなくてはなりませんね

ennkai
質問者

お礼

お礼がおそくなりました。 おっしゃる通りの方法で とりあえずはうまくいっています ありがとうございました 助かりました

その他の回答 (2)

  • miwaki
  • ベストアンサー率36% (14/38)
回答No.2

シート2のA列に所望に期間分オートフィルで月日を書き込み、B列にあなたのおっしゃるC列の関数を入れるとできるのではないでしょうか。 見当違いな答えかもしれませんが・・・

  • miwaki
  • ベストアンサー率36% (14/38)
回答No.1

確認します。 シート1でA列に飛び飛びの日付で入っているデータを、シート2のA列に1日から月末までの日付を入れて、該当するシート1の日付のC列のデータを取り出したいということでしょうか。

ennkai
質問者

お礼

御回答ありがとうございます、 文章で表現するのに困っていましたが おっしゃるとおりの内容です。 補足しますとシート1のA列に入る日付は 飛び飛びです(空白はありません) 複数の月にわたる場合もあります。 イメージとしてAは日付 Bは曜日(書式設定で変更) Cは来客数という具合です。

関連するQ&A

  • Excel VBA VLOOKUP の書き方

    次の関数をVBAで書くにはどのように記述すればよいでしょうか? =IF(ISNA(VLOOKUP(B2,Sheet2!A2:B9,2,FALSE)),"",VLOOKUP(B2,Sheet2!A2:B9,2FALSE)) よろしくお願いします。

  • Excel

    同一のファイル内で↓の事をしたのですが、ご意見をいただけませんか? Sheet1; (A列) (B列) (C列) (D列) 1 fileA 10K  ● 対象外 2 fileB 20K  ▲ 3 fileC 30K  ×  対象外 4 fileD 40K  ■ . . Sheet2; (A列) (B列) (C列)  (D列) 1 fileA 10K   2 fileB 20K 処理済み ▲ 3 fileC 30K 4 fileD 40K 処理済み ■  5 fileZ 50K    . . 1. (Sheet2)D列の作成です。 (Sheet1)A列を検索して、ファイルが存在すれば、ヒットした行番号の(Sheet1)C列の記号をコピーします。 ただし、(Sheet1)D列が「対象外」のときはブランクにします。 また、(Sheet2)5行目のように一致するデータが存在しない場合のエラー値「#N/A」もブランクにしたのですが 非表示にする方法が分かりません。 セル(D, 1)の定義はどのようになりますか? =IF(VLOOKUP($A2,Sheet1!$A:$D,4,FALSE)="対象外","",ISNA(VLOOKUP($A2,Sheet1!$A:$D,4,FALSE),""),VLOOKUP($A2,Sheet1!$A:$D,3,FALSE)) 2. (Sheet2)C列の作成です。 (Sheet2)D列に記号があれば、「処理済み」をコピーします。 (Sheet2)D列と同様の列がE,F,G..と追加する予定ですが、 一度、「処理済み」をコピーすると変更できないようにしたいのですがセル(C, 1)の定義はどのようになりますか? 以上 宜しくお願い致します。

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

    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にあまり詳しくなく、ご教示頂けましたら助かります。 よろしくお願いいたします。

  • シート1のC列の最終行をコピーして同じ行に値貼り付けしたい

    シート1のC列の最終行を取得して その行を丸々値貼り付けするマクロを作りたいと思います。 シート3のB18の値をシート1のC列の最終行の1つ下のセルに値貼り付け すると、その行のA、B列に日付が入力される関数が入っています。(下まで) 関数が入ったままだと、うまくいかない時があるので最終行をコピーして値貼り付けしたいのですが、マクロの作り方を教えてください。 シート1の最終行に貼り付け Sheets("Sheet3").Select Range("B18").Select Selection.Copy Sheets("Sheet1").Select Range("C65536").End(xlUp).Offset(1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub 最終行をコピーして値貼り付け Dim 最終行 As Integer 最終行 = Range("C65536").End(xlUp).Row Range("A6:C" & 最終行).Select Selection.Copy Sheets("Sheet1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub このマクロだと、A6からC列の最終行まで全てコピーされてしまうので、C列の最終行のAからC列まで1行だけコピーできないでしょうか?

  • 2つのSheetの数値を検索したい

    エクセルで2つのSheetのデータの個数を検索させたいのですが、 エラー値は空白にしたいので、 =IF(ISNA(VLOOKUP(B2,Sheet2!$A$2:$B$2607,2,FALSE)),"",VLOOKUP(B2,Sheet2!$A$2:$B$2607,2,FALSE)) という式を作ってうまくいったのですが、 この式に新たに同じsheet1の範囲(A2:B300)を追加したいのですが、 うまくいきません。 このB300はB400、B500というように日々増えていきます。 どのような式にすればいいでしょうか。

  • マクロVLOOKUPの高速化

    シート1には13,000行、 シート区分マスターには25,000行において シート1の検索値からシート区分マスターを検索して ヒットしたらシート1に返したいです。 シート1のデータ行文行いたいです。 シート1の行数は常に変化、 シート区分マスターの行数は固定です。 以下の記述で検索を行いますが終了するのに 5分強かかります。 (下のほうに再計算0%→5%→70%→95%と表示されている) もっと早く処理させる方法はありますでしょうか? よろしくお願いします。 Sub 区分検索() '2010 年11月18日 'シート1のA列を検索値として 'シート区分マスターのA列を検索しヒットしたら 'シート区分マスターの該当行のE列をシート1のC列に転記 'データはそれぞれのシートともに2列目からである 'ヒットしない場合はシート1のC列は空白にする '検索値と転記するセルのシート選択 With Sheets("シート1") 'データ開始行のC2に式を入れる .Range("C2").Formula = _ "=IF(ISNA(VLOOKUP(A2,区分マスター!$A:$E,5,FALSE)),"""",VLOOKUP(A2,区分マスター!$A:$E,5,FALSE))" '数式入力 '式によって抽出されてC列に転記された値をコピーします。 .Range("C2").Copy .Range("C2:C" & .Range("A" & .Rows.Count).End(xlUp).Row) 'データ最終行までコピー .Columns("C:C").Copy 'コピーした値をC1から値貼付を行う .Range("C1").PasteSpecial Paste:=xlPasteValues 'C列を値に変換 Application.CutCopyMode = False End With End Sub

  • 文字の表示を変える関数、日付入力の関数

    タイトルの件、質問いたします。 下記の画像をご覧ください。 【やりたい事1】 データ先ファイルのB列に、番号を打ち、C列、D列にデータを表示させた時の 日付を、A列に自動で入るようにしたい。 例:B2に、01と入力した日付を、A2に自動で入るようにしたい 【やりたい事2】 D列に表示させている、100、200を 100の場合は⇒あいうえお 200の場合は⇒かきくけこ とデータ先ブックのD列に表示させたい 【その他】 B列とC列には、下記の関数が入っています。 【B列】 =VLOOKUP($B2,[データ元.xls]Sheet1!$A$2:$C$4,2,FALSE) 【C列】 =VLOOKUP($B2,[データ元.xls]Sheet1!$A$2:$C$4,3,FALSE) 以上、ご存知の方は、宜しくお願いします。 【エクセルバージョン:2003】

  • VLOOKUPのエラーについて

    教えて下さい。 =IF(ISERROR(VLOOKUP($B3,Sheet2!$A$2:$D$35,4,FALSE)),"",VLOOKUP($B3,Sheet2!$A$2:$D$35,4,FALSE))+IF(ISERROR(VLOOKUP($B3,Sheet3!$A$2:$C$50,3,FALSE)),"",VLOOKUP($B3,Sheet3!$A$2:$C$50,3,FALSE)) という数式を使っています。 最初のIF文(Shee2)については有効なのですが、それならと、欲張って他のシートも参照できるように、+の後にIF文(Sheet3)を追加したら#VALUE!が表示されます。 何がいけないのでしょうか?

  • 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)))) 以上ですがご指導を仰ぎたいのですがよろしくお願いします。

  • 質問No.1890927の続きです。

    sheet2のC列の(魚屋さん)D列(500円)をsheet1のA1(魚屋さん)と入っている行のC1にsheet2のD列の500円を入れるようにしたかったので、VLOOKUPを使って入れるようにしたのですが、コピーをして、別のセルに他の項目(八百屋さんとか)の時も同じようにしようと思ったら、sheet2に同じ項目がないのに魚屋さんの金額が出てしまいます。 項目がないときにsheet1のC1に何も記入されずにする方法を教えてください。 私はsheet1のC1に if(A1=””,””,VLOOKUP(A1,'sheet2'!A1:E10,4))にしました。他にあれば教えてください。 よろしくお願いします。 と質問し、C1に=IF(COUNTIF(Sheet2!$A$1:$A$10,A1)>0,VLOOKUP(A1,sheet2!$A$1:$E$10,4,FALSE),"") と回答を頂き、解決したのですが、 Sheet1のB1に金額が入力してあって、B1-C1をD1に表示させたいと思ったら、出来ませんでした。表示はValue!でした。 解決方法を教えてください。 ちなみにE1にもC1を利用して表示させましたが、C1は金額で、E1は、文字です。 よろしくお願いします。

専門家に質問してみよう