Если у меня есть столбец данных в Excel, который выглядит следующим образом:

1
1
1
0
1
0
0
1
1

Есть ли простой способ преобразовать его в список длин серий, который выглядит следующим образом:

3 1
1 0
1 1
2 0
2 1

(Три 1, затем один 0, затем один 1, затем два 0 и два 1)

Я бы предпочел придерживаться каких-то формул, потому что они более прозрачны для других людей, с которыми я работаю.

1 ответ1

2

Я не говорю, что это легко и изящно, и представьте, что кто-то может улучшить это. Я в долгу перед Майком Гирвином за последние две формулы.

Предполагая, что исходные данные находятся в столбце A, начиная с A1:

  • Заполните B1 цифрами 1 и B2 и опустите формулу =IF(A2=A1,B1+1,1)
  • Заполните C1 и вниз с формулой =IF(B2>B1,"",B1)
  • Заполните D1 и вниз с формулой =IF(C1="","",A1)
  • Заполните E1 и вниз формулой =IFERROR(INDEX($C$1:$C$100,AGGREGATE(15,6,(ROW($C$1:$C$100)-ROW($C$1)+1)/($C$1:$C$100<>""),ROWS(E$1:E1))),"")
  • Заполните F1 и используйте формулу =IFERROR(INDEX($D$1:$D$100,AGGREGATE(15,6,(ROW($D$1:$D$100)-ROW($D$1)+1)/($D$1:$D$100<>""),ROWS(F$1:F1))),"")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .