Помощь с функцией SUMIF с функцией CONTAINS - PullRequest
2 голосов
/ 11 мая 2011

Предположим, у меня есть следующая таблица:

  State        CompanyTypes     Year      Sales
  AZ           A, C             2008      
  CA           B, C, D          2009      
  TX           C                2007      
  WA           A, D             2008      

Мне нужно заполнить столбец Sales на основе SUM продаж по всем типам компаний для определенного штата в определенном году.

Исходная таблица со всеми данными выглядит следующим образом:

 Year    State     CompanyType   TotalSales  
 2008    AZ        A             100
 2008    AZ        C             500
 2009    CA        B             9000
 2009    CA        C             15664
 2009    CA        D             12351
 2008    TX        C             5
 2009    WA        A             789

Я знаком с SUMIF, но не знаю, как заполнить столбец Salesпервая таблица из-за значений в столбце CompanyTypes, разделенных запятыми.

Кто-нибудь знает ??

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Исходя из точного формата в CompanyTypes «A, B, C» (т. Е. Пробелы имеют значение), вы можете использовать следующую формулу.Я использовал именованный диапазон «CT» для CompanyType, «TS» для TotalSales, «State» для State, все в исходной таблице.У меня был CompanyTypes в столбце B, а первый столбец State - это A.

=SUMIFS(TS, CT, MID(B2,1,1), State, A2) + 
 SUMIFS(TS, CT, MID(B2,4,1), State, A2) +
 SUMIFS(TS, CT, MID(B2,7,1), State, A2)

Просто поместите это в первую ячейку Sales (например, предполагаемую строку 2) и заполните.

1 голос
/ 11 мая 2011

Рэй, я заметил, что таблица продаж имеет следующее свойство: В каждой строке комбинация состояния и года уникальна в том смысле, что «AZ» и «2008» появляются только один раз среди всех строк. Если это верно, то эта формула должна работать

=SUMIFS(D4:D10,A4:A10,I4,B4:B10,G4)

Эта формула находит сумму всех продаж определенного штата в конкретном году, независимо от компании. Обратите внимание, что это не будет работать, если у вас есть что-то подобное в таблице продаж.

AZ  A  2008
AZ  C  2008

Вместо этого вы можете использовать следующую формулу, которая является продолжительной, но более общей.

=IF(
    IFERROR(
        FIND("A",$H4),
        0
    ),
    SUMIFS(
        D$4:D$10,
        C$4:C$10,"A",
        A$4:A$10,$I4,
        B$4:B$10,$G4
    ),
    0
)
+IF(
    IFERROR(
        FIND("B",$H4),
        0
    ),
    SUMIFS(
        D$4:D$10,
        C$4:C$10,"B",
        A$4:A$10,$I4,
        B$4:B$10,$G4
    ),
    0
)
+IF(
    IFERROR(
        FIND("C",$H4),
        0
    ),
    SUMIFS(
        D$4:D$10,
        C$4:C$10,"C",
        A$4:A$10,$I4,
        B$4:B$10,$G4
    ),
    0
)
+IF(
    IFERROR(
        FIND("D",$H4),
        0
    ),
    SUMIFS(
        D$4:D$10,
        C$4:C$10,"D",
        A$4:A$10,$I4,
        B$4:B$10,$G4
    ),
    0
)

Вы можете скопировать и вставить это прямо в панель формул. Эта формула содержит 4 блока IF, по одному для каждого типа компании. Если их больше, соответствующие блоки 'IF' также должны быть добавлены.

Документы Google ссылка , содержащая две таблицы. Формула была проверена в Excel 2010. Документы Google не показывают формулу, но сумму, которую она рассчитала при импорте файла Excel.

Надеюсь, это поможет.

...