• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:件数の求め方)

Excelマクロを使用して部署ごとの人数を求める方法

このQ&Aのポイント
  • Excelのマクロを使用して、部署ごとの基幹職人数を求める方法は、以下のようになります。
  • まず、マクロを実行するシートを選択し、セルの範囲を指定します。
  • 次に、ループを使用して各行のデータをチェックし、基幹職Noのセルが空でないかを確認します。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは Sub test1()   Dim r As Range   Const c1 As String = "C:C"   Const c2 As String = "D:D"   Const k As Long = 2   Const i As Long = 3   Const g As Long = 4      For Each r In Range(c2).Cells(2, 1).Resize(Range(c1) _           .SpecialCells(xlCellTypeConstants).Cells.Count - 1)     If r.Value <> "" Then       r.Offset(, k).Formula = _         "=COUNTIFS(" & c1 & "," & Intersect(r.EntireRow, Range(c1)).Address & _           "," & c2 & "," & r.Address & ")"     ElseIf r.Offset(, -1).Value <> r.Offset(1, -1) Then       r.Offset(, i).Formula = _         "=COUNTIFS(" & c1 & "," & Intersect(r.EntireRow, Range(c1)).Address & _           "," & c2 & ","""")"       r.Offset(, g).Formula = _         "=COUNTIF(" & c1 & "," & Intersect(r.EntireRow, Range(c1)).Address & ")"     End If        Next End Sub で。

その他の回答 (1)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは Sub test()   Dim r As Range   Sheets("WORK").Select   For Each r In Range("D2", Range("A" & Rows.Count).End(xlUp).Offset(, 3))     If r.Value <> "" Then       r.Offset(, 2).Formula = _         "=COUNTIFS(A:A," & r.Offset(, -3).Address & _           ",D:D," & r.Address & ")"     ElseIf r.Offset(, -3).Value <> r.Offset(1, -3) Then       r.Offset(, 3).Formula = _         "=COUNTIFS(A:A," & r.Offset(, -3).Address & _           ",D:D,"""")"       r.Offset(, 4).Formula = _         "=COUNTIF(A:A," & r.Offset(, -3).Address & ")"     End If        Next End Sub こういう事ですか?

La_Ola_Azul
質問者

補足

ushi2015さん、今晩は。 早速のご回答頂き有難うございます。結果としては記述頂いたコーディングでバッチリでした。 因みにこのコーディングではA列(部署名)をキーにCOUNTIFS関数で件数を出すようにしていますが、これをC列(部署番号)をキーにCOUNTIFS関数で処理をさせたい場合はどうしたら良いでしょうか。 実は本番のデータを使用した時にA列(部署名)が同じ部署名にも関わらずセルによっては全角記述だったり全角半角混在する記述(例:システム開発部の「システム」が全角記述又は半角記述)がみられ、結果として部署番号が同一でも別べつの部署扱いとなって件数が出力される現象が出ているのです。 お手数かけて済みませんが、何卒再度ご教授の程宜しくお願い致します。

関連するQ&A