Вычисляемое поле в Excel

Предположим, у меня есть два столбца в Excel, даты в виде строк, и я хочу создать сводную таблицу с некоторым вычисляемым полем. Формула для вычисляемого поля: Column1 / AVERAGE(Column2), в зависимости от выбранных дат.

Я использую вба. но, когда я делаю

pvtTable.CalculatedFields.Add Name:="Test1", Formula:="Column1 / AVERAGE(Column2)"

AVERAGE рассчитывается по сумме значений в столбце 2 (для выбранного диапазона дат), а не по отдельным значениям. EDIT: AVERAGE кажется, игнорируется в формуле вычисляемого поля, и вместо этого берется сумма.

Есть ли способ использовать одиночные значения при использовании AVERAGE в формуле вычисляемого поля? Я использую офис 2010.

Подробнее

Я пытался сделать это:

With pvtTable
    With .PivotFields("Column2")
        .Orientation = xlDataField
        .Function = xlAverage
        .NumberFormat = "0.00"
        .Value = "Avg Column2"
    End With
End With
pvtTable.CalculatedFields.Add Name:="Test2", Formula:="Column1 / Avg Column2"

Но Test2 не отображается в списке полей сводной таблицы. Когда я хочу отобразить его из vba, я получаю сообщение об ошибке Unable to get the PivotFields property of the PivotTable class.


person maialithar    schedule 28.10.2013    source источник


Ответы (1)


Вы почти у цели. В вашей первой попытке вам нужно изменить формулу: =, чтобы она была реальной формулой. Знак =, следующий за :, не запускает вашу формулу (см. аргумент имени). Это запутанный синтаксис. тогда вам нужны одинарные кавычки вокруг имен столбцов.

Это должно помочь:

ActiveSheet.PivotTables("PivotTable1").CalculatedFields.Add _
    "Test1", _
    "='Column 1'/AVERAGE('Column 2' )", _
    True

Обновление: это не работает. Вы не можете использовать формулы в вычисляемом поле, которые требуют ссылки на диапазон.

http://www.ozgrid.com/Excel/pivot-calculated-fields.htm

person guitarthrower    schedule 30.10.2013
comment
Спасибо за ответ, но это не помогает. ='Column 1'/AVERAGE('Column 2' ) имеет то же значение, что и ='Column 1'/'Column 2'. Причина объясняется здесь в правиле №2. Я считаю, что то, чего я хочу достичь, невозможно с помощью этой технологии. - person maialithar; 31.10.2013
comment
Похоже, вы правы. Вы не можете использовать формулы Excel, требующие диапазонов в параметре вычисляемого поля сводной таблицы. Возможно, powerpivot поможет, но это отдельная установка, а не то, с чем я знаком. - person guitarthrower; 31.10.2013