Здравейте!Как да се справя с този проблем? Получавам данни от счетоводен софтуер в този вид , а искам да станат във вид за пивот.

MS Excel
Пивот таблици
Excel Pivot & Power Pivot

Нищо работа, но ще ми трябва файла. Пишете ми на ЛС

Обаче, хм, трябва да видим как ще го опишем решението тук

Моето скромно мнение, решението е с програмен код на VBA. Счетоводните програми и някои ERP системи генерират този формат за импорт в Excel, който не помага данните да се обработват в Excel Най-доброто решение е да се напише коректна заявка в базата данни за желания формат.

Специално към Kocho: Любопитна съм да споделиш решението, по всяка вероятност с Power Query

Привет, отсъствах известно време. Към Kocho - неразбрах как да Ви пратя файла на ЛС. Иначе аз съм стигнал до тук в решението: От ехел 1.Нова колона "Concatenate" и събирам "фактура", №, "дата" 2. В Query раздърпвам по редове инфото -"fill down". Ако знаех как да изтрия множество произволни редове в заявката.......

може и на kochomindev@gmail.com

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. А накрая филтър за артикул - без Фактура. И също се получава.

И така става, защо не. Единственото неудобство е, че създаваме още една заявка

Вашият отговор:

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Име
    Имейл
     


    © 2016 Фондация “Аула”. Всички права запазени.
    Autodesk AutoCAD, Autodesk Inventor, Autodesk Civil 3D, Autodesk Revit, Autodesk 3ds Max, Autodesk Maya, Microsoft Word, Microsoft Excel, SharePoint Online, Microsoft PowerPoint, Microsoft Project, Microsoft, Adobe Photoshop, Adobe Illustrator, Adobe InDesign, Adobe After Effects, Adobe Premiere, Adobe Dreamweaver, V-Ray, Solidworks са регистрирани търговски марки на Adobe Systems Incorporated, Microsoft Corporation, Chaos Software Ltd, Autodesk Inc. и Dassault Systèmes SolidWorks Corp.