#vb.net #excel #vbscript #pivot-table #qlikview
#vb.net #excel #vbscript #сводная таблица #qlikview
Вопрос:
Я создаю сводную таблицу с помощью VBScript в QlikView:
sub cleanUp()
set sheet = ActiveDocument.Sheets("Summary")
set summaryTable = sheet.CreatePivotTable
summaryTable.addDimension "Product Group Desc"
summaryTable.addDimension "Product Type Desc"
summaryTable.addDimension "Product Sub Group Desc"
summaryTable.addDimension "Country"
summaryTable.addDimension "ZoneMgrName"
summaryTable.addExpression "Sum({<[Fiscal Year]={$(vCurrentYear)}>}
[Sales Amount])"
set props = summaryTable.getProperties
set expr = props.Expressions.Item(0).Item(0).Data.ExpressionVisual
expr.Label.v = "Expenses $(vCurrentYear)"
expr.NumAdjust = 1 'center
expr.LabelAdjust = 1 'center
summaryTable.SetProperties props
end sub
Кроме того, я хотел бы создать новые поля, используемые в качестве измерений. Этих полей пока нет в моем документе QlikView. Значение для этих полей связано со значением других полей. Допустим, у меня есть страна поля в моей сводной таблице. Я хотел бы добавить новое поле «Область», которое содержит название области, к которой принадлежит страна. Чтобы значения для поля были возвращаемым значением функции, которая возвращает площадь для данной страны.
Комментарии:
1. Я часто использовал qlikview в сочетании с VBA, поэтому надеюсь, что смогу помочь. В чем именно заключается вопрос? Код работает, но вы хотите, чтобы он делал больше? Я не уверен, чего вы хотите.
2. Спасибо! Я хочу создать новое поле (поле, не существующее в документе QlikView) и создать измерение в сводной таблице на основе этого поля: `summaryTable.addDimension «Новое поле»
3. @tannman357 Я должен указать значения для нового поля: значения представляют собой возвращаемое значение функции, которая принимает в качестве аргумента значение для другого поля. Смотрите мой пример со страной и областью.
4. Как вы использовали VBA в сочетании с QlikView? С помощью VBScript или другим способом?
5. Я всегда экспортирую любые данные ИЗ qlikview в Excel, а затем обрабатываю их там с помощью макросов, которые я сохраняю на другом листе. Если вы хотите создать новые поля, это очень легко сделать один раз в Excel.
Ответ №1:
Это зависит от того, как осуществляется доступ к вашим данным «поиска» (находятся ли они в вашем документе QlikView или являются внешними), но вы можете добавлять вычисленные измерения в сводную таблицу с помощью этого addDimension
метода. Например:
summaryTable.addDimension "=if(Country='France', 'EU', 'non-EU')"
Вы можете использовать любое обычное выражение, которое может возвращать значимые значения для вашего измерения.
Если вы хотите присвоить измерению имя, вы можете использовать addDimension
возвращаемое значение следующим образом:
dimensionNum = summaryTable.addDimension("=if(Country='France', 'EU', 'non-EU')")
set tableProperties = summaryTable.getProperties
set calcDim = tableProperties.Dimensions.Item(dimensionNum-1)
calcDim.Title.v = "Area"
summaryTable.SetProperties tableProperties