Как суммировать две строки с одной и той же подстрокой в ​​EXCEL

У меня есть небольшой набор данных об использовании браузера в файле CVS:

Browser | Hits
IE 9    | 5
IE 6    | 45
IE 7    | 33
Chrome  | 122 
Firefox | 8

Я хочу агрегировать на основе общей подстроки в столбце "Браузер" (например, все значения браузера, содержащие "IE"):

Browser | Hits
IE      | 83
Chrome  | 122 
Firefox | 8

Будет ли это проще сделать в SQL Server с помощью запроса? Если да, то этот ответ тоже подойдет.


person tresstylez    schedule 29.10.2013    source источник
comment
Данные начинаются с базы данных?   -  person Gordon Linoff    schedule 30.10.2013
comment
можно ли создать еще один столбец в Excel как =LEFT(‹Browser›,2) и включить его в качестве поля метки строки в сводную таблицу?   -  person MikeD    schedule 30.10.2013


Ответы (4)


Вам не нужны формулы массива в Excel — вы можете использовать СУММЕСЛИ с подстановочными знаками

=SUMIF(A:A,E3&"*",B:B)

где E3 содержит критерии поиска, такие как "chrome".

person barry houdini    schedule 29.10.2013

Выберите «Браузер», «Подсчет (попаданий) из (вашей таблицы)», «Группа по браузеру».

Посмотрите, работает ли это в

person Mayur Darji    schedule 29.10.2013

Самый простой способ в Excel — поместить нужные значения в столбец и использовать функцию массива. Например, поместите значения, начинающиеся с E3:

IE
Chrome
Firefox

Затем используйте условную агрегацию. Если предположить, что данные находятся в диапазоне от A1 до B1000 (при этом первая строка является заголовком), то формула в F3 будет выглядеть так:

{sum(if(isnumber(search(E3, $A$2:$A:$1000)) > 0, $B$2:$B$1000))}

Обратите внимание, что это функция массива, которую вы создаете с помощью Ctrl-Shift-Enter (поищите тему в Интернете). Затем вы можете скопировать функцию вниз по столбцу.

Если данные изначально находятся в базе данных SQL, то проще получить ответ там, не просматривая CSV-файл. Однако было бы полезно, если бы вы дали представление об исходном формате данных.

person Gordon Linoff    schedule 29.10.2013

В Excel попробуйте найти подстроку с помощью ПОИСК,

=IF(IFERROR(SEARCH("IE", A2), 0), B2,0)

Что даст значение A2 (Хиты), если A1 (Браузер) содержит строку «IE». Затем оттуда вы можете построить стержень. См. ЕСЛИ ячейка содержит строку.

В T-SQL у вас может быть такое представление:

SELECT 
  Browser = 'IE'
  Hits = SUM(CASE WHEN [Browser] LIKE '%IE%' THEN [Hits] ELSE 0 END)
FROM 
  MyTable 
UNION 
SELECT 
  Browser = 'Mozilla'
  Hits = SUM(CASE WHEN [Browser] LIKE '%Mozilla%' THEN [Hits] ELSE 0 END)
FROM 
  MyTable 

и т.п.

Но см. Барри Гудини ниже.

person outis nihil    schedule 29.10.2013