2009年8月19日水曜日

空白行に上の値をコピーする(非マクロ)

該当する範囲がA1:E10だとして、
データの範囲(空白を含む)であるセルA1~E10を選択します。
CTRLキー+ G を押します。
「ジャンプ」のダイアログが出ますので、セル選択を押します。
「空白セル」をチェックして、「OK」ボタンを押します。

空白セルだけ選択された状態になるので、そのままの状態で=A1と式を入力し、
CTRLキー+ENTER として確定します。

これで、空白だったセル全体に一行上のセルと同じ内容が入りますので、
値のコピー貼り付けで確定します。

2009年6月2日火曜日

テーブルのデータ構造をコピーする

DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentDb.Name, _
acTable, "1_" & Format(Date, "yyyy-mmm"), "1", True

上記のケースでは1_yyyy-mmmというテーブルのデータ構造を1というテーブル名でコピーします。

2009年5月20日水曜日

隣のセルと同じ範囲にペースト

Excelを使っていると、数式をコピーして、隣の入力範囲と同じ行分だけペーストしたいことがある。
Openofficeだと、Ctrl+Shiftで範囲を選択し、そのまま全く同じ範囲と隣の列に移動してペーストということができるのだが、Excelでこれはどうやるんだろう?とずっと悩んで毎回マウスをスクロールさせていた。
ところが今日遂にやり方を発見!
①選択したい数式をコピーする(セルごとコピー)
②ペーストしたい列の隣の列(ペーストしたい行が入力されている列)をCtrl+Shiftで全選択する
③Shift+→キーで選択範囲をペーストしたい列まで広げる
④Shft+Tab+→キーで、選択範囲を削っていく
⑤ペーストしたい列だけが選択できたらCtrl+Vでペーストする

やったね!

2009年2月24日火曜日

Vlookup関数での#N/Aエラー回避2種

検索結果が空欄の場合:
=IF(ISERROR(VLOOKUP(C27,D27:E27,2,FALSE)),"",(VLOOKUP(C27,D27:E27,2,FALSE)))
Iserrorがtrueだったら空欄、そうでなければ値を表示。

検索値が空欄の場合:
=IF(C27="","",(VLOOKUP(C27,D27:E27,2,FALSE))
検索値が空欄だったら空欄、そうでなければ値を表示。

2007年12月18日火曜日

Excel マクロ-最終セルの式を隣の列の最終行と同じ行までコピー

'Cが入力されている行までDにDの最終行の数式をコピーする

Private Sub FormulaCopy()

Dim 数式を取得する列 As Range
Dim データが入力されている列 As Range

Set 数式を取得する列 = Range("D65536").End(xlUp)
Set データが入力されている列 = Range("C65536").End(xlUp)

Range(数式を取得する列.Offset(0,-1 ), データが入力されている列).Offset(0, 1).Formula = _
数式を取得する列.Formula

End Sub

'Offset(0,-1)と(0,1)は(x,y)の縦横の場所を示す。
'もしDではなくEに数式を入力したい場合で数式の範囲の参照元がCのままである場合は、Offset(0,-2)、Offset(0,2)となる。

2007年12月12日水曜日

Excel マクロ-四半期を算出とその他

もっといい方法がありそうではありますが。。



Sub MonthandQuoter()
Dim LastRow As Long
LastRow = Range("C65536").End(xlUp).Row 'Cは要変更

For y = 2 To LastRow

If Cells(y, 4).Value <> "" Then '4は要変更
Cells(y, 2).Value = Format(Cells(y, 4), "mmm") '列Bに月を入力します 4は要変更
End If

Select Case
Cells(y, 2).Value '列Aに列Bの月を元に四半期を入力します
Case "Jan", "Feb", "Mar"
Cells(y, 1) = "Q1" Case "Apr", "May", "Jun"
Cells(y, 1) = "Q2" Case "Jul", "Aug", "Sep"
Cells(y, 1) = "Q3" Case "Oct", "Nov", "Dec"
Cells(y, 1) = "Q4" Case Else Cells(y, 1) = ""
End Select

If Cells(y, 5).Value = "" Then '5は要変更
Cells(y, 5).Value = Range("E2").Formula '5とE2は要変更
End If
Next
End Sub

2007年12月11日火曜日

Excel マクロ-Pivotを自動更新

Pivotのデータ選択範囲を
挿入>名前>定義で以下のように定義づけして名前をつける。
=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))
※たとえば名前を「データ範囲」とする。

Macroに以下を記述
Sub Renew()
   Range("A1").Select
   ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
   "データ範囲"
End Sub

http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/exqalounge.cgi?print+200512/05120052.txt
のkomaさんのコメントを参考にさせていただきました。