![](/img/trans.png)
[英]Excel VBA Freezing double loop to color certain range if criteria is met
[英]Identify first occurrence of an entry in a list, if certain criteria is met (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”的公式与countif的结果嵌套在一起,但是该表没有进行组织,因此AR在表格行中排名第一,反之亦然。 这是我的公式的一个示例:
=IF(E2="AR", IF(COUNTIF($C$2:C2,C2)=1,1,""), "")
有时,我会遇到一些公司名称出现而公司数目却不是1的情况。例如, orange grove
。 对于每个+1实例,Orange Grove的计数将连续为1、2、3。 如果我的计数是1和SFR
,则我的公式将输出1,但是如果我的标准是AR
,并且计数不是1(实际上是2或3),则我的AR
准则不会产生第一个出现的输出。
我看到可能有一种利用sumproduct
的方法,但我并不熟悉。
谁能帮忙。 任何事情将不胜感激!
这将guanrantee你一个结果,如果你能CONCATENATE
的属性名称和公司,然后输入以下提到的公式为AR
和SFR
细胞。
=CONCATENATE(A2," ",C2)
合并产品名称和公司。 它应该给您结果以空格分隔的格式。 例如。 橘树林SFR,烟囱扫AR等 AR
列的单元格E2中输入此公式: =IF(TRIM(RIGHT($D2,3))=E$1,IF(OR(COUNTIF($D:$D,$D2)=1,MATCH($D2,$D:$D,0)>=ROW($D2)),1,0),0)
SFR
列,然后将其拖到每列的底部以应用所有记录/行。 最后,您将获得预期的以下结果:
表:
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
说明:
=IF(TRIM(RIGHT($D2,3))=E$1
COUNTIF($D:$D,$D2)=1
b。 当组合重复但第一个实例的行号小于当前行号时: MATCH($D4,$D:$D,0)>=ROW($D4)
希望能有所帮助。
假设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)
谢谢!
瑞安
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.