如何以Excel或CSV格式导出层次结构

2020-09-26 04:09发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

这是针对BPC 10.1的,是否可以在excel中导出维度层次结构(不是以parenth1作为属性的普通维度视图,而是通常在excel epm add in中显示的层次结构视图)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

这是针对BPC 10.1的,是否可以在excel中导出维度层次结构(不是以parenth1作为属性的普通维度视图,而是通常在excel epm add in中显示的层次结构视图)

付费偷看设置
发送
4条回答
SC_Yao
1楼 · 2020-09-26 04:19.采纳回答

没有VBA的示例(使用本地成员):

本地成员:

LM001(在列轴之后):= IF(EPMDIM_CURRENT_MEMBER(P_ACCOUNT)=" MIN","",EPMMemberProperty(,EPMMemberID(EPMDIM_CURRENT_MEMBER(P_ACCOUNT))," HLEVEL")* 1)

LM002(在行轴之前):= MIN(OFFSET(EPMALLMEMBERS,0,1))

LM003(在LM001之后):= IF(EPMPOSITION(2)<>"",EPMPOSITION(2)-$ B $ 2,"")

LM004(在LM003之后):= IF(COLUMN()-COLUMN(E1)= EPMPOSITION(3),EPMDIM_CURRENT_MEMBER(P_ACCOUNT),"")

LM005(在LM004之后):= IF(COLUMN()-COLUMN(E1)= EPMPOSITION(3),EPMDIM_CURRENT_MEMBER(P_ACCOUNT),"")

...

直到:

LM012(在LM011之后):= IF(COLUMN()-COLUMN(E1)= EPMPOSITION(3),EPMDIM_CURRENT_MEMBER(P_ACCOUNT),"")

如果需要更多级别,请添加更多具有相同公式的本地成员。

大道至简
2楼-- · 2020-09-26 04:29

可以对本地成员执行相同的操作...

clasier
3楼-- · 2020-09-26 04:33

抱歉,但是 不清楚!

您可以使用epm报告来标识成员身份...

"而是通常在excel epm add in中显示的层次结构视图"-请显示预期结果示例!

奄奄一息的小鱼
4楼-- · 2020-09-26 04:17

嗨,曼尼,

我认为您无法导出分层视图。 但是您可以使用常规的scv导出和Excel宏。

这是我过去使用的

公共wsSrc作为工作表,wsDst作为工作表
公共lSrcFirstRow&,lChildCol&,lParentCol&,lSrcLastRow&,lDstFirstRow&,lDstFirstCol&
公共lDstRow&

Sub MakeTree()
昏暗的sNoParent作为字符串

'*********************** Anpassen ***** ********
设置wsSrc = ThisWorkbook.Worksheets(" Sheet1")'源表
lSrcFirstRow = 2'源表中的第一行
lChildCol = 1'带有子ID的列
lParentCol = 2'带有父ID的列
sNoParent =""'父列中顶级ID的标记

设置wsDst = ThisWorkbook.Worksheets(" Sheet2")'目标表
lDstFirstRow = 1'目标表中的第一行
lDstFirstCol = 1'目标表中的第一列
'*************************** *******************

lSrcLastRow = wsSrc.Cells(Rows.Count,lChildCol).End(xlUp).Row
lDstRow = lDstFirstRow
调用ScanChilds(sNoParent,0)
结束子

Sub ScanChilds(sParent作为字符串,iLevel作为整数)
Dim lRow&
对于lRow = lSrcFirstRow到lSrcLastRow
如果wsSrc.Cells(lRow,lParentCol)= sParent则
lDstRow,lDstFirstCol + iLevel)= wsSrc.Cells(lRow,lChildCol)
lDstRow = lDstRow + 1
调用ScanChilds(wsSrc.Cells(lRow,lChildCol),iLevel + 1) 下一个lRow
End Sub

一周热门 更多>