Здравейте!Как да се справя с този проблем? Получавам данни от счетоводен софтуер в този вид , а искам да станат във вид за пивот.
Нищо работа, но ще ми трябва файла. Пишете ми на ЛС
Обаче, хм, трябва да видим как ще го опишем решението тук
Моето скромно мнение, решението е с програмен код на VBA. Счетоводните програми и някои ERP системи генерират този формат за импорт в Excel, който не помага данните да се обработват в Excel Най-доброто решение е да се напише коректна заявка в базата данни за желания формат.
Специално към Kocho: Любопитна съм да споделиш решението, по всяка вероятност с Power Query
Привет, отсъствах известно време. Към Kocho - неразбрах как да Ви пратя файла на ЛС. Иначе аз съм стигнал до тук в решението: От ехел 1.Нова колона "Concatenate" и събирам "фактура", №, "дата" 2. В Query раздърпвам по редове инфото -"fill down". Ако знаех как да изтрия множество произволни редове в заявката.......
може и на [email protected]
Kocho, благодаря за идеята. С Power Query се получава много лесно и без код на VBA. Merge Queries прави чудеса!
Аз всъщност не използвам Merge Queries. за номера на фактурата правя Conditional Column: Ако в колона "име на документа/артикул" е "фактура" да върне стойността от колона "номер" else null След това в тази колона правя Fill down и така получавам колона с номерата на фактурите
По аналогичен начин си правя колона за датите, а за контрагентите просто прилагам Fill down.
След това в колона "име на документа/артикул" филтрирам и махам "фактура".
Накрая преименувам колоните, размествам ги, и оправям формата ако е нужно.
Ето го и М кодът (Source е Table1, където са ми примерните данни, но може да бъде файл или база данни, линк към страница и т.н.):
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Име на документа/артикул", type text}, {"номер", type any}, {"дата/бр", type any}, {"сума", type number}, {"контрагент", type text}}), #"Added Conditional Column" = Table.AddColumn(#"Changed Type", "Custom", each if [#"Име на документа/артикул"] = "фактура" then [номер] else null), #"Filled Down" = Table.FillDown(#"Added Conditional Column",{"Custom"}), #"Renamed Columns" = Table.RenameColumns(#"Filled Down",{{"Custom", "Фактура"}}), #"Added Conditional Column1" = Table.AddColumn(#"Renamed Columns", "Custom", each if [#"Име на документа/артикул"] = "фактура" then [#"дата/бр"] else null), #"Filled Down1" = Table.FillDown(#"Added Conditional Column1",{"Custom"}), #"Changed Type1" = Table.TransformColumnTypes(#"Filled Down1",{{"Custom", type date}}), #"Renamed Columns1" = Table.RenameColumns(#"Changed Type1",{{"Custom", "дата"}}), #"Filled Down2" = Table.FillDown(#"Renamed Columns1",{"контрагент"}), #"Filtered Rows" = Table.SelectRows(#"Filled Down2", each ([#"Име на документа/артикул"] <> "фактура")), #"Renamed Columns2" = Table.RenameColumns(#"Filtered Rows",{{"номер", "мярка"}, {"Име на документа/артикул", "Артикул"}, {"дата/бр", "бр"}}), #"Changed Type2" = Table.TransformColumnTypes(#"Renamed Columns2",{{"бр", Int64.Type}}) in #"Changed Type2"
Супер решение, благодаря! Аз използвам Merge Query. Ето как: Duplicate Query за заявката с данните и запазвам само колоните с данните за фактурата. След това Merge на двете заявки за колоната с номера на фактурата. За 4-те нови колони - Fill Down. А накрая филтър за артикул - без Фактура. И също се получава.
И така става, защо не. Единственото неудобство е, че създаваме още една заявка
Въпросът ми е към упражнението на урок м6v6. Защо команда keep не запази заменените стойности.
Изпратете скрийншот на промените с команда Keep и за резултата след командата.
Упражнението със скрийншота правя за първи път. Много ми хареса и е много лесно. Освен това намерих отговор на моя въпрос - използвах команда Close&Load. Много благодаря на екипа за уроците!
Радвам се, че сама сте намерила отговор. Успех!
Защо Excel не отразява измененията в заявката. Може ли по-подробно стъпките: 1. Изчистваме текста в заявката - това е ясно, 2. Записваме промените с ...... 3. Измененията се пренасят в Excel ......??
За да покажете направените промени в заявката като таблица в Excel, ето какво трябва да направите: 1. Изчиствате данните 2. Query Editor --> Home --> Close&Load --> Close&Load To
Отваря се диалогов прозорец Load
Заявката с направените промени се записва на ноя лист.
Всяка следващата промяна в заявката ще се отрази в тази таблица
Ако имате още въпроси, моля пишете.
Благодаря!