我有一张看起来像这样的桌子
|---------------------------------|
| Date | User | Value A | Value B |
|------|------|---------|---------|
| Day1 | U1 | A111 | B111 |
|------|------|---------|---------|
| Day1 | U1 | A112 | B112 |
|------|------|---------|---------|
| Day2 | U1 | A121 | B121 |
|------|------|---------|---------|
| Day2 | U2 | A221 | B221 |
|---------------------------------|
我需要创建一个数据透视表,为每个用户显示:其值A的总和/所有值B的总和。
获得类似的东西:
|---------------------------------------|
| Date | User | Value A / Value B |
|------|------|-------------------------|
| Day1 | U1 | (A111+A112)/(B111+B112) |
|------|------|-------------------------|
| Day2 | U1 | A121+(B121+B221) |
|------|------|-------------------------|
| Day2 | U2 | A221+(B121+B221) |
|---------------------------------------|
我只能使用默认的Microsoft Excel 2010,并且不能安装任何加载项,因此我仅使用VBA和数据透视表来使工作表始终保持更新。
谢谢
答案 0 :(得分:0)
由于数据透视表不适用于自定义函数,因此您只能使用VBA。在那里,您可以使用类似的内容:
Sub getValues()
Dim LastRow As Long
Sheets("Sheet1").Columns(1).Copy Destination:=Sheets("Sheet1").Columns(8)
Sheets("Sheet1").Columns(2).Copy Destination:=Sheets("Sheet1").Columns(9)
Range("H:I").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
With ActiveSheet
LastRow = .Cells(.Rows.Count, "H").End(xlUp).Row
End With
For i = 2 To LastRow
Cells(i, 10).Formula = "=" & "SUMIFS(C:C,A:A,H" & i & ",B:B,I" & i & ")/SUMIFS(D:D,A:A,H" & i & ",B:B,I" & i & ")"
Next i
End Sub