Екцел - издвајање података из одређених колона

Питање

Имам неке колоне података које изгледају овако:

 дата1 ... дата2 ... дата3 вал ......... вал ....... вал вал ....... вал ........ вал вал ....... вал ....... вал 

(дата1-3 су само имена података у колонама)

Желим да га конвертујем мање-више аутоматски у .цсв-фајл који је измењен у следећим линијама:

 (дата3) (дата1) (дата2) вал ........- вал ....... вал вал ........- вал ....... вал вал .. ......- вал ....... вал вал ........- вал ....... вал 

Заглавља колоне смештена у () зато што се не би требало приказивати у .цсв фајлу. Редослед података1-3 је случајан у мом примјеру, морам бити у могућности користити другачији поредак. Знам како форматирати ћелије да промијеним вриједности у негативне.

Очекујем да буде нешто као формула која преузима податке из именоване колоне у датотеци; ћелије у последњој колони изгледају нешто као '= [патх / соурцефиле.клс] схеетнаме! цолумн-валуес: "дата2"'. То би могло бити далеко и није могуће чак ни у екцел-у, и ако није, волио бих да знам.

Такође, изворни фајл ће садржати колоне које неће бити коришћене у цсв фајлу. Процес стога треба да идентификује наведене колоне у датом фајлу, да их копира и прераспореди и затим их налепи у .цсв.

Има ли идеја о томе како то урадити?

Решење

Шифра испод претпоставља

  • 1. Подаци су у листу под називом Схеет1
  • 2. Може се креирати привремено име листа миТемпСхеет
  • 3. Име ЦСВ датотеке које треба сачувати у темпЦСВ.цсв
  • 4. Не тражи се празна колона

Користити

Након лепљења кода извршите макро. Питат ће вас како желите да се ступац појави у ЦСВ-у. Дакле, ако прва колона коју желите је Д, тачан одговор је 4. Када завршите са обавештавањем како ће се појавити колоне, само притисните ок без икакве вредности.

Код:

 Суб цреатеФиле () Дим нумОфЦол Ас Интегер Дим цолНум Ас Интегер Дим миТемпСхеет Ас Стринг Дим датаСхеет Ас Стринг Дим цолВалуе Ас Вариант Дим ЦолИндек () Ас Интегер Дим цвсНаме Ас Стринг ТхисВоркбоок.Саве миТемпСхеет = "миТемпСеет" датаСхеет = "Схеет1" цвсНаме = " темпЦСВ "Схеетс (датаСхеет) .Селецт нумОфЦол = Целлс (1, Цолумнс.Цоунт) .Енд (клТоЛефт) .Цолумн РеДим ЦолИндек (нумОфЦол) За цолНум = 1 За нумОфЦол цолВалуе = ИнпутБок (" Која колона треба да буде на позицији "& цолНум) & "у ЦВС датотеци", "Положај Цола") Ако цолВалуе = "" Затим изађите за друго ЦолИндек (цолНум) = цолВалуе Крај ако је следећа грешка Настави следеће листове (миТемпСхеет) .Обрисати на грешку ГоТо 0 Схеетс.Адд АцтивеСхеет. Наме = миТемпСхеет За цолНум = 1 За нумОфЦол Ако је ЦолИндек (цолНум)> 0 Тада листови (датаСхеет) .Одабери колоне (ЦолИндек (цолНум)). Изаберите Селецтион.Цопи Схеетс (миТемпСхеет) .Одаберите колоне (цолНум) .Селецт АцтивеСхеет.ПастеСпециал. клВалуе Елсе Излаз за крај Ако следећи листови (миТемпСхеет) .Селецт нумОфЦол = Ћелије (1, колоне. Број). Енд (клТоЛе фт) .Цолумн За цолНум = 1 За нумОфЦол Ако ћелије (1, цолНум) "" Затим Целлс (1, цолНум) = "(" & Целлс (1, цолНум) & ")" Енд Иф Нект АцтивеВоркбоок.СавеАс _ Филенаме: = цвсНаме & ".цсв", _ ФилеФормат: = клЦСВ, _ ЦреатеБацкуп: = Подкаст 

Белешка

Хвала ризвиса1 за овај тип на форуму.

Претходни Чланак Sledeći Чланак

Топ Савети