2016-11-25 4 views
-1

나는이 계산 된 필드와 스프레드 시트를 생성하고있다 : "# 사업부/0""# Div/0!"을 방지하려면 어떻게해야합니까? 계산 된 셀 (Aspose Cells)에서?

pivotTable.AddCalculatedField("Average Price", "=TotalPrice/TotalQty", true); 

그것은 대부분의 시간을 마법처럼 작동하지만, 한 번 잠시 0 값이 있습니다, 그리고 따라서 생산 두 번째와 마지막 항목 등이 여기에 표시 :

enter image description here

가 어떻게 그것을 방지 할 수 있습니까? 여기

더 문맥 전체에 피벗 생성 코드이다 :

"=IF(TotalQty<>0,TotalPrice/TotalQty,0)" 

번째 인자는 경우에 표시되는 값이다 그것에 의해 분할 전에 제로

private void PopulatePivotTableSheet() 
{ 
    int DESCRIPTION_COLUMN = 1; 
    int MONTHYR_COLUMN = 3; 
    int TOTALQTY_COLUMN = 4; 
    int TOTALPRICE_COLUMN = 5; 
    int PERCENTOFTOTAL_COLUMN = 7; 
    int MONTHLY_PERCENTAGE_COLUMN = 8; 
    int AVGPRICE_COLUMN = 10; 
    int COLUMNS_IN_DATA_SHEET = 11; 
    int HEADER_ROW = 8; 

    AddPreDataSectionToPivotTableSheet(); 

    PivotTableCollection pivotTables = pivotTableSheet.PivotTables; 
    int colcount = COLUMNS_IN_DATA_SHEET; 
    string lastColAsStr = ReportRunnerConstsAndUtils.GetExcelColumnName(colcount); 
    int rowcount = sourceDataSheet.Cells.Rows.Count; 
    string sourceDataArg = string.Format("sourceDataSheet!A1:{0}{1}", lastColAsStr, rowcount); 
    int index = pivotTableSheet.PivotTables.Add(sourceDataArg, "A6", "PivotTableSheet"); 
    PivotTable pivotTable = pivotTables[index]; 

    pivotTable.RowGrand = true; 
    pivotTable.ColumnGrand = true; 

    pivotTable.DisplayNullString = true; 
    pivotTable.NullString = "0"; 

    pivotTable.AddFieldToArea(PivotFieldType.Row, DESCRIPTION_COLUMN); 
    pivotTable.RowHeaderCaption = "Description"; 

    pivotTable.AddFieldToArea(PivotFieldType.Column, MONTHYR_COLUMN); 
    pivotTable.ColumnHeaderCaption = "Months"; 

    pivotTable.AddFieldToArea(PivotFieldType.Data, TOTALQTY_COLUMN); 
    pivotTable.DataFields[0].DisplayName = "Total Packages"; 

    pivotTable.AddFieldToArea(PivotFieldType.Data, TOTALPRICE_COLUMN); 
    pivotTable.DataFields[1].DisplayName = "Total Purchases"; 

    pivotTable.AddCalculatedField("Average Price", "=TotalPrice/TotalQty", true); 

    pivotTable.AddCalculatedField("PercentOfTotal", "=TotalPrice", true); 
    pivotTable.DataFields[3].DisplayName = "Percentage of Total"; 
    pivotTable.DataFields[3].DataDisplayFormat = PivotFieldDataDisplayFormat.PercentageOfColumn; 
    pivotTable.RowFields[0].IsAutoSubtotals = false; 

    PivotField field = pivotTable.RowFields[0]; 
    field.IsAutoSort = true; 
    field.IsAscendSort = false; 
    field.AutoSortField = 1; 
    pivotTable.PivotTableStyleType = PivotTableStyleType.PivotTableStyleLight16; 

    pivotTable.RefreshDataFlag = true; 
    pivotTable.RefreshData(); 
    pivotTable.CalculateData(); 
    pivotTable.RefreshDataFlag = false; 

    List<String> contractItemDescs = GetContractItemDescriptions(); 
    ColorizeContractItemBlocks(contractItemDescs); 
    HideItemsWithFewerThan1PercentOfSales(); 
    FreezePanePivotTable(HEADER_ROW, 2); 
    FormatPivotTableNumbers(); 

    Style style = workBook.CreateStyle(); 
    style.Font.Name = "Calibri"; 
    style.Font.Size = 12; 
    pivotTable.FormatAll(style); 

    sourceDataSheet.IsVisible = false; 
} 

답변

1

체크 TotalQty 여부 TotalQty은 0입니다.

1

또한 시도 할 수 있습니다 : 당신이 원하는 경우

IFERROR(TotalPrice/TotalQty,"") 

따옴표가 0이 될 수 있습니다.

1

단순히 아무것도 "등의 빈 셀 (공백을 표시하는 데 사용됩니다없는 것처럼"

이가 이

, 여기 기능) "만약 (ISBLANK ((셀의 범위),"

를 사용 여기에 쓰여짐) 셀의 범위가 아무것도 구성되지 않은 경우, 그렇지 않으면 셀에 값이 있으면 함수가 실행됩니다.