Преобразование данных в Excel (строки и столбцы) - PullRequest
0 голосов
/ 09 января 2020

Текущий ввод:

+-------------------------+
|          col A          |
+-------------------------+
| Test(read)              |
| - ABC(dsakl)            |
| - ABC(dslø) Write(T)    |
| - ABC(dsjkl)            |
| Test(true)              |
| - ABC(DSdsa)            |
| - ABC(dsalk**) write(F) |
+-------------------------+

Требуемый вывод:

+-------------------------+-------------------------+
|          col A          |          col B          |
+-------------------------+-------------------------+
| Test(read)              | - ABC(dsakl)            |
| Test(read)              | - ABC(dslø) Write(T)    |
| Test(read)              | - ABC(dsjkl)            |
| Test(true)              | - ABC(DSdsa)            |
| Test(true)              | - ABC(dsalk**) write(F) |
+-------------------------+-------------------------+

Следовательно, я хочу каждый раз так преобразовывать свои данные " «Тест» происходит, он создает новую строку в столбце «А», соответствующую количеству строк, пока не произойдет следующий «Тест». Ячейки, содержащие «AB C», должны быть записаны в столбце «B» выходного файла.

Действительно ценю вклад в этом. Спасибо!

1 Ответ

0 голосов
/ 10 января 2020

Могут быть и другие подходы к этому, но если вы хотите сделать это чисто с помощью обычных формул, вы можете попробовать это:

Выполните col B с Aggregate, чтобы найти первую строку с "-", затем второй et c.

=IFERROR(INDEX(A$1:A$10,AGGREGATE(15,6,ROW(A$1:A$10)/(LEFT(A$1:A$10)="-"),ROW())),"")

Col A сложнее - он находит n-ую строку, начинающуюся с «-», как и раньше, затем просматривает перед этим, чтобы найти последнюю строку, начинающуюся с T:

=IFERROR(INDEX(A$1:A$10,AGGREGATE(14,6,ROW($A$1:INDEX(A$1:A$10,AGGREGATE(15,6,ROW(A$1:A$10)/(LEFT(A$1:A$10)="-"),ROW())))
/(LEFT($A$1:INDEX(A$1:A$10,AGGREGATE(15,6,ROW(A$1:A$10)/(LEFT(A$1:A$10)="-"),ROW())))="T"),1)),"")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...