電子書籍の厳選無料作品が豊富!

Excelに使用者と時刻を入力したデータがあります。そのデータはアプリを使用している場合にExcelに10分おきに入力されていきます。(9:00~10:00、11:00~12:00の場合、12個の行が作成される)このデータからユーザーのアプリ使用時間を抽出しようとしています。

【イメージ】
ユーザーA 2:00
ユーザーB 0:10

【データ】
ユーザーA 9:00
ユーザーA 9:10
ユーザーA 9:20
ユーザーB 9:30
ユーザーA 9:30
ユーザーB 9:40


ユーザーA 11:00
ユーザーA 11:10


ユーザーA 12:00

どのようなコードを書けばスマートに上記のイメージのような情報を抽出できるでしょうか?

A 回答 (2件)

こんにちは



まず、計算対象のユーザのデータだけを抜き出します。
(多分、その状態で時間順にソートされているものと想像します。)
次に、10分間隔で連続している数をカウントします。
連続していない部分については、それぞれ別に計算して、最後に合計すれば宜しいかと。
(評価方法によっては、別々に集計しなくても、まとめて計算できる場合もあります)

No1様の指摘にもありますが、n個のデータが連続していたとして、その際の時間をどう評価するかは質問者様がお決めにならなければなりません。
最低で (n-2)×10分、最大で n×10分 ということになるので、どのような値として評価するか、間を取って (n-1)×10分 とか n×10-5 等とする等々です。

記録されている各ユーザについて、上記の集計処理を順に行えばよいのではないでしょうか?
    • good
    • 0

それぞれのカウント数から1を引いて10倍すれば指摘の分が求められると思いますが、


たまたま10分単位の所で使用していなければ0になってしまうし
今回ユーザーBを10分にされていますが、連続で使われた場合、最大「9:20:01~9:49:59」のほぼ30分、最小「9:20:00~9:30:00」のほぼ10分の可能性が有るので20分にされる方が良いと思います。
そうすると、カウント数を単に10倍すれば分が求められますよ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!