[英]Excel transpose some rows into columns depending on values in another column
我有一個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行。 做諸如if語句之類的簡單事情對我沒有幫助,因為我需要該列中每個組的第一次和最后一次。 所以我很沮喪。
任何幫助,將不勝感激。
根據您理想的格式,我有一些公式可以為您提供正確的結果。 假設您的數據在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),"")
第二個開始時間公式(可以復制到所有后續的開始時間列中: =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),"")
有關工作文件示例,請在此處檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.