質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1767閲覧

VBAでの中央値計算

SASAKI

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2023/02/01 07:18

実現したいこと

以下のような表があるときにエクセルVBAで中央値を計算したいです。

前提イメージ説明

n数カウントは同じ種類のデータをかかった時間を小さい順にまとめたときに順にカウントアップしていきます。
例)A11からA21の11個のデータでかかった時間の中央値を求めたい
これをこのシートの最終行まで行いたいです。
n数カウント1で終了している行はその種類しかデータがありませんでした。

試したこと

ExcelワークブックのMEDIAN関数を使用して算出しようかと思いましたが、
VBA上ではうまくできませんでした。
何かいい方法があればご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

vba

1Sub Test1() 2 3 Dim wsSource As Worksheet 4 Dim rngTarget As Range 5 Dim lngRow As Long 6 Dim lngFirstRow As Long 7 Dim lngLastRow As Long 8 Dim lngSequenceStart As Long 9 Dim lngSequenceHeight As Long 10 11 Set wsSource = ThisWorkbook.Worksheets(1) 12 13 With wsSource 14 15 lngFirstRow = 2 16 lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row 17 18 If lngFirstRow > lngLastRow Then 19 Set wsSource = Nothing 20 Exit Sub 21 End If 22 23 .Range(.Cells(lngFirstRow, 3), _ 24 .Cells(lngLastRow, 4)).ClearContents 25 26 lngSequenceStart = lngFirstRow 27 lngSequenceHeight = 1 28 29 For lngRow = lngFirstRow To lngLastRow 30 If .Cells(lngRow, 1).Value < .Cells(lngRow + 1, 1).Value Then 31 lngSequenceHeight = lngSequenceHeight + 1 32 Else 33 '集計範囲の参照 34 Set rngTarget = .Cells(lngSequenceStart, 2).Resize(lngSequenceHeight, 1) 35 '中央値の出力 36 .Cells(lngRow, 3).Value = WorksheetFunction.Median(rngTarget) 37 '検算用に数式も設定 38 .Cells(lngRow, 4).Formula = "=MEDIAN(" & rngTarget.Address & ")" 39 Set rngTarget = Nothing 40 lngSequenceStart = lngRow + 1 41 lngSequenceHeight = 1 42 End If 43 Next 44 45 End With 46 47 Set wsSource = Nothing

以上のようなコードを実行できればよい、ということでしょうか。

投稿2023/02/01 08:23

sk.exe

総合スコア751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問