集めた資料に基づいてエクセルを勉強する
  • 10«
  • 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
  • »12
Ads by Google
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
マークの表示
セルの書式背設定でやると大変そうなので
VBAかなと思い こちらに質問させていただきます。
【シート1】
        1日  2日・・・
  A  B  C   D
1       19:00 20:00 
2       19:30 20:30
4       19:45 20:30
5       19:00 20:30
このような表があります。
C列とD列は入力していくのですが入力する前の枠を2シート分コピーしてあります。
【ベスト】
        1日  2日・・・
  A  B  C   D
1       ○   20:00 
2       19:30 20:30
4       19:45 20:30
5       ○   20:30
シート1でC列が19:00より早ければベストシートに○をつけたいのです。
【ワースト】
          1日      2日・・・
  A  B  C   D
1       19:00 20:00 
2       19:30 ×
4       19:45 ×
5       19:00 20:30
C列が19:00より遅い時間で(19:00は含まない)、D列が20:00より遅いとき×と表示させたいと思います。
毎日入力して類型のワーストとベストをカウントしようと思っています。マークの数を数えればOKなのです。

ベストの方は、
=COUNTIF(C1:C5,"<="&TIME(19,0,0))
ワーストの方は
=SUMPRODUCT((C1:C5>TIME(19,0,0))*(D1:D5>TIME(20,0,0)))
で、カウント数が求められると思います。
セル範囲(C1:C5,D1:D5)については、適宜修正願います。
マクロです。
Sub Sample()
Dim SH1 As Worksheet, SH2 As Worksheet
Dim c As Range
Dim cnt1 As Long, cnt2 As Long
Set SH1 = Worksheets("ベスト")
Set SH2 = Worksheets("ワースト")
With Worksheets("Sheet1") '?←実情にあわせて下さい
With .Range("C1", .Range("C65536").End(xlUp))
.Resize(, 2).Copy SH1.Range("C1")
.Resize(, 2).Copy SH2.Range("C1")
For Each c In .Cells
If c.Value <= TimeValue("19:00:00") Then
SH1.Cells(c.Row, "C").Value = "○"
cnt1 = cnt1 + 1
Else
If c.Offset(, 1).Value > TimeValue("20:00:00") Then
SH2.Cells(c.Row, "D").Value = "×"
cnt2 = cnt2 + 1
End If
End If
Next
End With
End With
MsgBox SH1.Name & " のカウントは " & cnt1
MsgBox SH2.Name & " のカウントは " & cnt2
Set SH1 = Nothing
Set SH2 = Nothing
End Sub
文字列の数を数えてたい
やりたいことですが
Sheet1 [A]              [B] [C] [D]
[1] あああ
[2] あああ
[3] あああ 123
[4] あああ
[5] あああ 124
[6] あああ 125
[7] あああ
[8] あああ 126
というデータがあり、「あああ」のみはカウントせず、「あああ xxx」のセル
の数をB1セルのする。
合わせて、、「あああ xxx」セルの色を青にすて「あああ」のみのセルと
区別したいのですが、どういうにすればいいでしょうか。

条件つき書式でしょう。
この例の状況なら、「数式が」にして、=LEN(A1)>3 とし、
書式のパターンで青を指定します。
C列に
・・・=IF(LEN(A1)>3,1,0)として
B1セルに
・・・=SUM(C1:C8)&"件です" 
としました。
保護をかけたセル以外のデータを一括削除
保護をかけたセル以外のデータを一括削除する方法を教えてください

マクロですが。
Alt + F11 を押して、VBEを起動、挿入-->標準モジュールを選択。
出てきた画面に下記コードをコピペして閉じる。
該当のシートをアクティブ(表示)にした状態で、Alt + F8 を押して、testを選択、実行。
Sub test()
On Error Resume Next
Cells.Value = Empty
End Sub
キャンセルできない
『連続印刷について』で作ったデータを元に、あの後
一件づつ印刷できるように、フィルタ印刷ボタンを復活させてみました。
で、やり方がまずかったのか、同じデータの印刷について延々と聞かれ続けて、
終了できなくなってしまいました。
つまり、印刷するかどうかのウィンドウが開きっぱなしになってしまいます。
「はい」を押すと、印刷はされるのですが、また同じデータについてのウィンドウが開いてしまいます。
「いいえ」も「キャンセル」も同様で、ウィンドウが再び表示されてしまい、エクセルが閉じれなくなってしまいました。
使ったものは「フィルタ印刷」で、選んだセルの行を印刷となっているので、
目的の行を左端の数字が表示されている所(いちばんひだりはしのA1などを指定するあの数字の部分のとこです)を
選択して、一行全部選択してみたんですが……それが拙かったのでしょうか?
とにかくどうにかして一旦エクセルを閉じたいのですが、宜しくお願いします。

[CTRL]+[Break(Pause)] で止まりませんか?
請求金額を6対4の整数で分けたい
請求金額をA社に6割、B社に4割の整数で分ける為の関数を教えてください。

請求金額に0.6をかければ6割の金額が出ますよ。
1円単位まで金額がある場合は割り切れないと思いますが、 その場合はどうするんでしょう?
関数ということなので、、、
A1に請求金額
B1にA社分
C1にB社分
として、
B1=ROUND(PRODUCT(A1,60%),0)
C1=A1-B1
とされてはどうでしょうか。
Copyright © 2005 エクセル勉強しませんか. all rights reserved.