如果满足特定条件,则识别列表中第一次出现的条目(EXCEL)

时间:2015-06-26 23:02:00

标签: excel formula

我花了太多时间试图在这个问题的标题中解决我们提出的问题,并且正在寻求帮助。

当条件等于AR时,我想为第一次出现输入1的条目,当条件等于单独列上的SFR时,输出第一次出现的条目为1。

例如,下表中我想要的列是标题为ARSFR

的列
|Property Name  | product | company | AR | SFR |
|---------------|---------|---------|----|-----|
|orange grove   |    2    |   SFR   | 0  |  1  |
|orange grove   |    1    |   AR    | 1  |  0  |
|orange grove   |    6    |   AR    | 0  |  0  |
|garden court   |    2    |   SFR   | 0  |  1  |
|garden court   |    1    |   AR    | 1  |  0  |
|chimney sweeps |    6    |   AR    | 1  |  0  |
|chimney sweeps |    2    |   SFR   | 0  |  1  |
|chimney sweeps |    1    |   AR    | 0  |  0  |
|chimney sweeps |    4    |   SFR   | 0  |  0  |
|downing apts   |    2    |   SFR   | 0  |  1  |
|downing apts   |    1    |   SFR   | 0  |  0  |
|downing apts   |    6    |   AR    | 1  |  0  |

我尝试在我的公式中实现countif,并且只考虑我的输出是1的结果,然后将标准“AR”或“SFR”的公式与我的countif的结果嵌套,如果满足条件,但表没有组织,因此AR在表格行中排在第一位,反之亦然。以下是我的公式示例:

=IF(E2="AR", IF(COUNTIF($C$2:C2,C2)=1,1,""), "")

有时我会遇到公司名称出现但计数不是1的情况。例如orange grove。对于每个+1实例,橘树林的数量将连续为1,2,3。如果我的计数为1且SFR,我的公式将输出1,但如果我的条件是AR且计数不是1(实际上是2或3),我不会第一次出现根据我的AR标准输出。

我看到可能有办法利用sumproduct,但我不熟悉它。

有人可以帮忙吗?任何事都将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果您CONCATENATE属性名称和公司,然后将下面提到的公式输入ARSFR单元格,则会保证您的结果。

  1. 插入一列并使用=CONCATENATE(A2," ",C2)合并产品 姓名和公司。它应该给你空间分隔的结果 格式。例如。橙树林SFR,烟囱清扫AR等。
  2. 在单元格E2中输入此公式,该公式属于AR列:=IF(TRIM(RIGHT($D2,3))=E$1,IF(OR(COUNTIF($D:$D,$D2)=1,MATCH($D2,$D:$D,0)>=ROW($D2)),1,0),0)
  3. 将公式向左拖动到单元格F2以应用于SFR列,然后应用于每列的底部以应用所有记录/行。
  4. 最后,您将获得预期的以下结果:

    表格

    R/C   A               B         C        D                    E     F
    
    01    Property Name   product   company  Merged PN + C        AR    SFR
    -------------------------------------------------------------------------
    02    orange grove    2         SFR      orange grove SFR     0     1
    03    orange grove    1         AR       orange grove AR      1     0
    04    orange grove    6         AR       orange grove AR      0     0
    05    garden court    2         SFR      garden court SFR     0     1
    06    garden court    1         AR       garden court AR      1     0
    07    chimney sweeps  6         AR       chimney sweeps AR    1     0
    08    chimney sweeps  2         SFR      chimney sweeps SFR   0     1
    09    chimney sweeps  1         AR       chimney sweeps AR    0     0
    10    chimney sweeps  4         SFR      chimney sweeps SFR   0     0
    11    downing apts    2         SFR      downing apts SFR     0     1
    12    downing apts    1         SFR      downing apts SFR     0     0
    13    downing apts    6         AR       downing apts AR      1     0
    

    <强>解释

    1. 我们合并了产品名称&amp;公司识别独特的记录。
    2. 然后我们创建了一个条件来检查最后3个字符是否与我们的列名相匹配:=IF(TRIM(RIGHT($D2,3))=E$1
    3. 如果上述条件为真,这意味着我们在正确的公司列中,我们现在可以继续检查产品名称实例是否是第一个。如果没有,那么我们在错误的列中,所以只需打印0。
    4. 正如您所提到的,可以是产品名称和产品名称的唯一组合或多种组合。公司。因此有两个条件:  一个。当组合是唯一的,即count等于1时:COUNTIF($D:$D,$D2)=1  湾当组合重复但第一个实例的行号小于当前行号时:MATCH($D4,$D:$D,0)>=ROW($D4)
    5. 如果上述2个条件中的任何一个为TRUE,那么记录是第一个实例,因此打印1,否则不是,因此打印0。
    6. 希望它有所帮助。

答案 1 :(得分:0)

假设列D和E分别是AR和SFR列,请尝试:

表格结构:

    AR  SFR
AR  1   0
AR  0   0
AR  0   0
AR  0   0
AR  0   0
SFR 0   1

单元格D2将是(假设AR是列D的列标题)

=IF(C2=D1,1,0)

E2将是:

=IF(C2=E1,1,0)

对于D3,然后向下拖动D列中的每个单元格

=IF(SUM(D$2:D2)=0,IF($C3=D$1,1,0),0)

对于E3,然后向下拖动E列中的每个单元格

IF(SUM(E$2:E2)=0,IF($C3=E$1,1,0),0)

谢谢!

赖安