![](/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.