2009-11-16 2 views
0

피벗 테이블이있는 Excel 스프레드 시트가 있습니다. 데이터 그 자체는 매우 간단하며 단위 수와 할인율 (0에서 100까지의 백분율)이 맨 위에 전체 고객에게 피벗되고 왼쪽에 고객이 표시됩니다. 그 숫자는 SQL보기에서 바로, 그래서 피벗 테이블 소스는 그냥 : 나는 피벗 테이블 (각 유닛 것 £ 200의 요금으로) TOTALCOST의 계산 필드를 추가하려고 시도 할 때까지Excel 피벗 테이블 계산 된 필드 합계가 예기치 않은 값을 반환합니다.

SELECT * FROM UnitDiscountView 

모든 잘보고 있었다 :

= (200 *NrUnits) * ((100-Discount)/100) 

아래쪽의 합계는 음수이며 숫자보다 더 많은 것으로 예상됩니다. 모든 셀을 선택하면 하단의 상태 표시 줄에 나타나는 합계가 예상되지만 총계 필드는 백 배 이상 커지고 부정적입니다.

나는 혼란 스럽습니다. 나는 이것을 해결하기 위해 도움이 될만한 것을 찾지 않고 금요일 이후 수색했다. 해결책을 찾기 시작하는 곳을 가리키는 어떤 조언이라도 대단히 감사하겠습니다. 나는 SQL이 Excel이 아니라 나의 장점이라고 언급해야한다. 저는 지난 주 이전에 Excel의 Pivot 테이블을 사용하지 않았기 때문에 아마도 정말 명백한 것을 놓치고있을 것입니다. 합계와 함께 작동합니다

답변

1

계산 필드 :

200 * (NrUnits의 합) * ((100 - [할인의 합])/100) 총 행 그래서

의 합계 경우 할인이 100보다 큰 경우 (피봇 테이블에 모든 할인액 합계를 더함) 공식의 일부 (할인 총액)는 음수를 반환하므로 음수 값을 반환합니다.

내가 일반적으로하는 일은 쿼리에서 반환 된 값의 오른쪽에있는 테이블에 다른 열을 추가하는 것입니다. 내 수식을 거기에 추가 한 다음 크기 조정 테이블에서 피벗 테이블을 수행합니다.

반환 된 SQL 쿼리를 테이블 (또는 Excel 2003의 목록) 형식으로 지정한 경우 피벗 테이블 원본 범위의 크기가 자체적으로 조정되어야합니다.

+0

감사 Dendatii. 매우 감사. – Jonathan

0

답변을 찾았습니다.

엑셀 효과적으로 총이 일을했다 :

= (200 * sum(NrUnits)) * ((100-sum(Discount))/100) 

내가 원하는 것을 꿈에도 생각하지 않은 :

= sum((200-NrUnits) * ((100-Discount) * 100))) 

I가보기에서 SQL을 변경하여 라운드를 얻었다 수 :

SELECT *, NrUnits*((100-Discount)*100) AS EffectiveUnits 
FROM UnitDiscountView 

그리고 계산 된 필드를 :

,536,
= EffectiveUnits * 200 
관련 문제