2

我正在使用DGETLibreOffice 中的功能。我有如下所示的第一个表(顶部)。我想制作第二张桌子(底部)。我可以使用 DGET 函数,其中数据库是包含顶部表格的单元格范围,数据库字段是“赢家”。

是否可以在Search Criteria中有不同的单元格范围,以便对于 Case #1 的行中的每个单元格可以有单独的公式,其具有不同的搜索条件,如底部表格的第一行中给出的?

如果我必须为搜索条件使用单独的连续单元格范围,那么将有 [n*Chances] 单元格范围,其中 n = 案例总数(在我的案例中约为 150),而 Chances = Chance# 的可能数量(50 在我的情况)。

Case | Chance#  |  Winner
-------------------------
1    |   7      |    Joe
1    |   9      |    Emil
1    |   10     |    Harry
1    |   11     |    Kate
2    |   1      |    Tom
2    |   3      |    Jerry
2    |   4      |    Mike
2    |   7      |    John

Case  |Chance#|Chance#|Chance#|Chance#|Chance#|Chance#|Chance#|Chance#|Chance#|Chance#|Chance#| 
      |="=1"  |="=2"  |="=3"  |="=4"  |="=5"  |="=6"  |="=7"  |="=8"  |="=9"  |="=10" |="=11" | ---- |="=50"  
 1    |       |       |       |       |       |       | Joe   |       |Emil   |Harry  | Kate  | ---- | 
 2    | Tom   |       |Jerry  |Mike   |       |       | John  |       |       |       |       | ---- | 
4

1 回答 1

1

为此,您需要更改方法,而不是使用 DGET,我使用的是一种更复杂的方法:

考虑到你的例子:


       A       B       C       D       
1      #       Case    Chance# Winner
2      1       1       7       Joe
3      2       1       9       Emil
4      3       1       10      Harry
5      4       1       11      Kate
6      5       2       1       Tom
7      6       2       3       Jerry
8      7       2       4       Mike
9      8       2       7       John
10      
11      Case\Chance#      1      2      3      4
12            1
13            2         Tom            Jerry      Mike  

我使用以下内容:


=IF(SUMPRODUCT(($B$2:$B$9=$A12)*($C$2:$C$9=B$11)*($A$2:$A$9))> 0,INDEX($D$2:$D$9,SUMPRODUCT(($B$2:$B$9=$A12)*($C$2:$C$9=B$11)*($A$2:$A$9))),"")

让我们忽略 IF,并在这里关注真正的交易:

首先,获取与您的条件匹配的行,$B$2:$B$9=$A12 和 $C$2:$C$9=B$11 将产生一个 TRUE/FALSE 数组,将它们相乘得到一个 0/​​1 数组匹配只有一个 1,现在乘以 ID 以获得表中的行号。SUMPRODUCT 将从结果数组中为您获取单个值(行)。最后使用索引来检索所需的值。

IF 语句测试是否存在匹配项(SUMPRODUCT > 0),以过滤掉不匹配的单元格。

于 2014-01-27T08:44:13.580 回答