0

次のようなExcelファイルを取得しています。

Time  012345  2345678   5647890 7891234
6:00    1        0         0       1
6:30    1        1         0       1
7:00    1        1         0       0
7:30    0        0         0       0
8:00    0        0         1       0
8:30    0        0         1       0
9:00    0        0         1       0
9:30    0        0         1       0
10:00   0        0         0       0
10:30   1        0         0       1
11:00   1        0         0       1
11:30   1        0         0       1
12:00   1        0         0       1
12:30   0        0         0       0
13:00   0        0         0       0
13:30   0        0         1       0
14:00   0        0         1       0
14:30   0        0         1       0
15:00   0        0         1       0
15:30   1        1         0       0

目標は、これらを転置することですが、列の実際の1と0の代わりに時間値を取得することです。理想的な出力は次のようになります。

userID    startTime1   stopTime1   startTime2   stopTime2   startTime3  stopTime3
012345      6:00         7:30         10:00       12:30        15:00
2345678     6:00         7:30         15:00
5647890     7:30         10:00        13:00       15:30        
7891234     6:00         7:00         10:00       12:30

ピボットテーブルの設定とフィルタリングを試しましたが、どこにも行きませんでした。そして、私は他に何を試すべきかわかりません。VとHLOOKUPSも私のためにトリックをしていません。

問題の一部は、開始時刻が1の1行上のタイムスタンプである必要があり、停止時刻がグループの最後の1の1行下のタイムスタンプである必要があることです。列の各グループで最初と最後の時間が必要なため、ifステートメントのような単純なことをしても役に立ちませんでした。だから私はかなり困惑しています。

これに関する助けをいただければ幸いです。

4

1 に答える 1

3

あなたの理想的なフォーマットに基づいて、私はあなたに正しい結果を与える公式を持っています。データが範囲A1:E21にあり、ユーザーIDを範囲G2:G5にコピー/転置したと仮定します。

最初の開始時間の式は次のとおりです。 =IF(HLOOKUP($G2,$B$1:$E$2,2,1)=1,$A$2,INDEX($A$1:$A$21,MATCH(1,OFFSET($A$1:$A$21,0,MATCH($G2,$1:$1,0)-1,,),0)-1))

最初の停止時間の式(これはすべての停止時間列にコピーできます)は次のとおりです。 =IFERROR(INDEX(OFFSET($A$1:$A$21,MATCH(H2,$A$1:$A$21,0),,,),1+MATCH(0,OFFSET($A$1:$A$21,MATCH(H2,$A$1:$A$21,0),MATCH($G2,$1:$1,0)-1,,),0)-1),"")

2番目の開始時間式(後続のすべての開始時間列にコピーできます: =IFERROR(INDEX(OFFSET($A$1:$A$21,MATCH(I2,$A$1:$A$21,0),,,),MATCH(1,OFFSET($A$1:$A$21,MATCH(I2,$A$1:$A$21,0),MATCH($G2,$1:$1,0)-1,,),0)-1),"")

作業ファイルのサンプルについては、こちらを確認してください。

于 2012-10-18T22:44:42.247 に答える