2017-02-18 13 views
0

Предположим, что у нас есть два столбца, в том числе миллион строк как это:Как перенести столбцы в строки (с прерываниями) в Excel?

1

Что такое правильную формулу или VBA, чтобы сделать еще одну таблицу, расположенную, как это?

2

+0

Что вы пробовали? примеры помогут другим избежать того, что не работает. Одна вещь, которая приходит на ум, - это все ключевые слова красного цвета? Если да, то, возможно, поиск между ключевыми словами на основе цвета. Если они не красные, то есть ли «ключ» или список ключевых слов? –

+0

Спасибо за ваш совет. Красные тексты были только потому, что уделяли больше внимания. Я отредактировал pix из-за вашей озабоченности. Нам нужно просто перенести каждый набор данных рядом. – Sushiant

+0

Два вопроса. Известно ли жесткое ограничение количества дополнительных столбцов, которые вам нужно создать? И вам нужен чистый ответ Excel или будет приемлемым решение VBA? – xarxziux

ответ

0

Для чистого раствора Excel попробовать это.

Прежде всего вам нужно добавить вспомогательную колонку. Это просто возвращает TRUE в строке заголовка или FALSE в противном случае. Это не строго необходимо, но это сделает остальные формулы немного проще. В образце вы Приведенную выше, напечатайте это в ячейку C1:

=IF(A1=B1,TRUE,FALSE) 

Теперь введите это ячейка D1:

=IF(AND(C1,NOT(C2)),A2,"") 

Что это делает проверить, если текущая строка является заголовком, но не рядом , и копирует первую ячейку следующей строки, если она есть, или возвращает пустую строку, если это не так.

Каждая последующая ячейка следует по одной и той же схеме, но сначала проверяет, является ли предыдущая ячейка пустой. Введите эту функцию в ячейку E1:

=IF(D1="","",IF(AND(C1,NOT(C3)),A3,"")) 

Теперь вам просто нужно скопировать этот шаблон для других 10 ячеек. К сожалению, копирование и вставка не будет работать так, как вам нужно увеличивать A3 и C3 вниз, а копировать и вставлять с увеличением их вправо. Таким образом, от E1, мы получаем:

F1: =IF(E1="","",IF(AND(C1,NOT(C4)),A4,"")) 
G1: =IF(F1="","",IF(AND(C1,NOT(C5)),A5,"")) 
. 
. 
. 
O1: =IF(N1="","",IF(AND(C1,NOT(C13)),A13,"")) 

Теперь скопируйте эти клетки в нижней части набора данных, и вы должны получить результаты вы после этого. Вот пример:

Completed example

Примечания дополнительной ИСТИНА в ячейке C21, так что последний расчет завершается правильно.

Однако, если у вас действительно есть миллион строк в вашем наборе данных, я бы поставил под вопрос мудрость использования Excel вообще. В зависимости от ваших обстоятельств и ресурсов вам может быть лучше хранить данные в текстовом файле и обрабатывать его с помощью соответствующего языка сценариев.