如果符合某些标准,则识别列表中首次出现的条目(EXCEL)
我花了太多的时间来试图把这个问题的题目强加给我们,并且正在寻求一些帮助。
当条件等于AR时,我想输出1的条目,当条件等于单独列的SFR时,输出条目1的第一个出现在列上。
例如,我想在下表中的列是标题为AR
和SFR
的列
|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”的公式embedded到标准结果中,如果标准满足的话,不是有组织的,所以AR排在第一位,反之亦然。 这是我的公式的一个例子:
=IF(E2="AR", IF(COUNTIF($C$2:C2,C2)=1,1,""), "")
有时我会有公司名称出现,但数量不是1的情况。以orange grove
为例。 Orange Grove的数量将连续1,2,3次,每次+1次。 如果我的计数是1和SFR
,我的公式会输出一个1,但是如果我的标准是AR
并且计数不是1(实际上是2或3),那么根据我的AR
标准不会得到第一个出现的输出。
我看到可能有一种方法来利用sumproduct
但我不熟悉它。
任何人都可以请帮忙。 任何东西将不胜感激!
如果你可以把房产名称和公司连接起来,然后把下面提到的公式input到AR
和SFR
单元格中,那么它会给你一个结果。
- 插入一列并使用
=CONCATENATE(A2," ",C2)
合并产品名称和公司。 它应该给你空格分隔格式的结果。 例如。 橙树林SFR,烟囱扫AR等。 - 在属于
AR
列的单元格E2中input该公式:=IF(TRIM(RIGHT($D2,3))=E$1,IF(OR(COUNTIF($D:$D,$D2)=1,MATCH($D2,$D:$D,0)>=ROW($D2)),1,0),0)
- 将左边的公式拖到单元格F2上,应用于
SFR
列,然后拖到每列的底部以申请所有logging/行。
最后你会得到如预期的结果:
表:
R/CABCDEF 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
说明:
- 我们合并了产品名称和公司以识别唯一的logging。
- 然后我们创build了一个条件来检查最后3个字符以匹配我们的列名:
=IF(TRIM(RIGHT($D2,3))=E$1
- 如果上述条件为真,这意味着我们在正确的公司列,我们现在可以继续检查产品名称实例是否是第一个。 如果没有,那么我们在错误的列,所以只打印0。
- 正如您所提到的,可以是产品名称和公司的独特组合或多种组合。 因此有两个条件:a。 当组合是唯一的,即计数等于1时:
COUNTIF($D:$D,$D2)=1
b。 当组合重复但第一个实例的行号小于当前行号时:MATCH($D4,$D:$D,0)>=ROW($D4)
- 如果上述两个条件中的任何一个为TRUE,那么logging是第一个实例,因此打印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)
谢谢!
瑞安