このような表に、
日付曜日商談数成約数成約率実績着地
1土
2日
3月
4火
5水
6木
7金
8土
9日
10月
11火
12水
13木
14金
15土
16日
17月
18火
19水
20木
21金
22土
23日
24月
25火
26水
27木
28金
29土
30日
下記のデータが他のシートからリンクされています。
(これは日々、更新されています。)
日付 商談数 成約数 成約率 実績 着地
9/3月12件 2件 17% ¥160,000 ¥890,000
このリンクされているデータを上記のカレンダーの該当する日付の行に貼り付けられていくにはマクロを組むしかないのでしょうか?
No.1ベストアンサー
- 回答日時:
マクロを組まなくてもできます。
でも、これだけ回答されてもしょうがないのでは?
B4セルに
=($A$1&$B$1&A4&"日")*1
下へオートフィル
セル世の書式設定でB8セルのように、曜日にします。
C4セルは
=IF(ISNA(MATCH($B4,$B$21:$B$37,0)),"",INDEX(C$21:C$37,MATCH($B4,$B$21:$B$37,0)))
右へ下へオートフィル
0が表示されるのが、イマイチなら 書式設定のユーザー定義で # にするなど。
No.5
- 回答日時:
マルチポストとは、、、残念です
http://oshiete.goo.ne.jp/qa/7680055.html
=HYPERLINK("#Sheet1!"&MATCH(TODAY(),Sheet1!B:B,0)&":"&
MATCH(TODAY(),Sheet1!B:B,0),TODAY())
No.4
- 回答日時:
回答2です。
私の解釈が間違っていたようですね。マクロを使うことに変わりはないですがだいぶ簡略化されますね。
該当のシート上にコマンドボタンを配置し、それを右クリックして「コードの表示」を選択し、次のコードを入力します。
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 18 To 48
If DateValue(Cells(i, 1).Value) = DateValue(Cells(51, 1).Value) Then
Range(Cells(51, 3), Cells(51, 7)).Copy
ActiveSheet.Paste (Cells(i, 2))
Application.CutCopyMode = False
Cells(i, 1).Select
Exit Sub
End If
Next
End Sub
なお、マクロを有効にするためには「開発」タブの「デザインモード」のアクティブな状態が解除さえていることが必要です。
勿論、A18セルからA48セルまでの日付は例えば2012/9/1のように入力して1日のような表示にしておくことが必要ですね。
この回答への補足
お世話になっております。
貼り付けされたデータが、#REF!エラーになってしまうのですが、
どうしてなのでしょう。
素人ですいません。
よろしくお願いします。
No.2
- 回答日時:
他のシートのデータは日々更新されるとなりますとマクロで対応する意外にできません。
お示しの日付の表がシート1に有るとします。
それにしても日にちと曜日だけの表では何年何月の表であるのかわかりませんので次のようにしてはどうでしょう。例えばA1セルには2012/9/1のように入力して9月のカレンダーを作るとします。A1セルについては右クリックして「セルの書式設定」の「表示形式」で「ユーザー設定」を選び種類の窓には yyyy年m月 のように入力します。これで2012年9月と表示されますね。
2行目にはA2セルから順に日付、曜日、商談数、成約数、成約率、実績、着地とG2セルまでに入力します。
A3セルには次の式を入力して下方にドラッグコピーします。
=IF(MONTH(A$1+ROW(A1)-1)<>MONTH(A$1),"",A$1+ROW(A1)-1)
セルに####などが表示された場合にはA列の幅を広げます。
A1セルで指定した年月の月末の日付までが表示されますね。1日、2日のように表示させる場合にはA3セルから下方の行を選択してから右クリックし、A1セルと同様に表示形式を設定します。その際の式は d日 と入力すればよいでしょう。
次の曜日の表示ですがB3セルには次の式を入力して下方にドラッグコピーします。
=IF(A3="","",TEXT(A3,"aaa"))
ここまではご質問の範囲外ですがマクロの操作に絡んできますので上のように表を作成してみてください。
次に日々入力するデータですがシート2に作成するとしてA1セルからF1セルまでに日付、商談数、成約数、成約率、実績、着地の項目名を並べます。
シート1に入力したいデータをそれぞれの項目の下方に入力します。
シート2のデータをシート1に貼り付けるために、その操作を実行するためのコマンドボタンをシート2の画面に作成します。
そのためには「開発」タブの「挿入」から「ActiveXコントロール」にある「コマンドボタン」をクリックしてからエクセル画面上で四角を描きます。その図形を右クリックして「コードの表示」を選択します。
コード記載の画面では次のマクロを入力します。
Private Sub CommandButton1_Click()
Dim i, n As Long
Set WS1 = Worksheets("Sheet1")
Set WS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
i = 1
Do
i = i + 1
If WS2.Cells(i, 1) = "" Then Exit Sub
If Month(WS2.Cells(i, 1).Value) <> Month(WS1.Range("A1").Value) Then
MsgBox WS2.Cells(i, 1).Value & "はシート1の表の月に一致していませんからコピー貼り付けることができません。"
Else
With WS1.Range("A3:A33")
Set m = .Find(What:=WS2.Cells(i, 1).Value, LookIn:=xlValues, SearchOrder:=xlByColumns, Matchbyte:=True)
n = Range(m.Address).Row
WS2.Range(Cells(i, 2), Cells(i, 6)).Copy
WS1.Activate
WS1.Cells(n, 3).Select
ActiveSheet.Paste
Application.CutCopyMode = False
WS1.Cells(n, 1).Select
End With
End If
Loop Until WS2.Cells(i, 1) = ""
Application.ScreenUpdating = True
End Sub
最後に「開発」タブの「デザインモード」がアクティブ状態になっているでしょうからクリックして解除します。
以上で終了です。
シート2で必要なデータを入力してコマンドボタンをクリックすることでシート1にはシート2のデータがコピーして貼り付けられます。
この回答への補足
ありがとうございます。
当方、マクロど素人でして、
下記の状況ですと、
お答えいただいたマクロはどうなりますでしょうか?
お時間のある時で構いません。
よろしくお願いします。
反映元シートの名前は、『rink』シートで
他のファイルからリンクされたシートです。
そこからさらにリンク先として、表示しておりますのが、
”集計されています~”のくだりのデータです。
その表示範囲の行は、
A51~G51 で、
A51 に=TODAY()、
B51 にはA51 の日付を曜日変換したもの、
以降、
C51 から、=rink!B21(=商談数)
D51=rink!C21(=成約数)
E51=rink!D21(=成約率)
F51=rink!B5(=実績)
G51=rink!F5(=着地)
となっています。
日進月歩カレンダーは、同シート内で
集計データ上部 A18 ~G50 の範囲での表となっております。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- 地球科学 太陽系の惑星と週(日曜日~土曜日)、月(1月~12月)に付いての質問です。 太陽系には、8つの惑星が 3 2022/10/08 22:32
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- 野球 スポーツの話 1 2022/05/12 13:07
- 野球 北海道日本ハムファイターズの話 3 2022/12/11 19:52
- 野球 北海道日本ハムファイターズの話 3 2022/12/12 23:13
- Visual Basic(VBA) VBA 連続する名前ごとに集計 3 2022/05/21 18:24
- 野球 北海道日本ハムファイターズの話 1 2022/06/09 14:34
- 野球 北海道日本ハムファイターズの話 1 2022/12/13 19:30
- 野球 北海道日本ハムファイターズの話 2 2023/01/13 06:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
Accessでフォームに自動入力し...
-
【Access】Dcount関数の複数条...
-
アクセスクエリで教えて下さい...
-
Access VBA [リモートサーバー...
-
ACCESS VBA でのエラー解決の根...
-
Access VBA を利用して、フォル...
-
Access IF文でテーブルに存在し...
-
Access Error3061 パラメータが...
-
Accessのクエリで、replace関数...
-
Accessで作ったデータベースをw...
-
CSVファイルの「0落ち」にVBA
-
accessでlaccdbファイルが削除...
-
accessデータを指定したExcel、...
-
Access で半角スペースと全角ス...
-
Accessのスプレッドシートエク...
-
accessの代わりになるもの
-
日付のテキストボックスに(例...
-
accessのフォームに設置したボ...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
ACCESS VBA でのエラー解決の根...
-
Accessのスプレッドシートエク...
-
Access VBA を利用して、フォル...
-
【Access】Dcount関数の複数条...
-
accessデータを指定したExcel、...
-
Accessレポートのチェックボッ...
-
Access VBA [リモートサーバー...
-
Vba Userformを前面に出すについて
-
Accessのリンクテーブルのパス...
-
実行時エラー3131 FROM 句の構...
-
Accessのフォーム上のテキスト...
-
CSVファイルの「0落ち」にVBA
-
Access 複数条件検索の設定が上...
-
アクセス 削除するレコードを含...
-
Access で半角スペースと全角ス...
-
access 更新クエリについて
-
Accessのクエリの結果を、既存...
おすすめ情報