簡體   English   中英

如果滿足某些條件,則標識列表中條目的首次出現(EXCEL)

[英]Identify first occurrence of an entry in a list, if certain criteria is met (EXCEL)

我花了太多時間試圖以問題的標題來說明我們提出的問題,並且正在尋求幫助。

當條件等於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實例,Orange Grove的計數將連續為1、2、3。 如果我的計數是1和SFR ,則我的公式將輸出1,但是如果我的標准是AR ,並且計數不是1(實際上是2或3),則我的AR准則不會產生第一個出現的輸出。

我看到可能有一種利用sumproduct的方法,但我並不熟悉。

誰能幫忙。 任何事情將不勝感激!

這將guanrantee你一個結果,如果你能CONCATENATE的屬性名稱和公司,然后輸入以下提到的公式為ARSFR細胞。

  1. 插入一列,然后使用=CONCATENATE(A2," ",C2)合並產品名稱和公司。 它應該給您結果以空格分隔的格式。 例如。 橘樹林SFR,煙囪掃AR等
  2. 在屬於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)
  3. 將公式向左拖動到單元格F2上以應用到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

說明:

  1. 我們合並了產品名稱和公司,以標識唯一記錄。
  2. 然后,我們創建了一個條件以檢查最后3個字符是否與我們的列名匹配: =IF(TRIM(RIGHT($D2,3))=E$1
  3. 如果以上條件為真,則意味着我們在正確的“公司”列中,我們現在可以繼續檢查“產品名稱”實例是否為“第一”。 如果不是,那么我們在錯誤的列中,因此僅打印0。
  4. 如您所述,產品名稱和公司可以是唯一組合,也可以是多個組合。 因此,有兩個條件: 如果組合是唯一的,即計數等於1: COUNTIF($D:$D,$D2)=1 b。 當組合重復但第一個實例的行號小於當前行號時: MATCH($D4,$D:$D,0)>=ROW($D4)
  5. 如果以上兩個條件中的任何一個為TRUE,則記錄為第一實例,因此顯示為1,否則為0,因此記錄為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)

謝謝!

瑞安

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM