Excel - создать количество ячеек с определенным тегом - PullRequest
0 голосов
/ 28 июля 2011

У меня есть источник данных с 1000 строками, содержащими следующие заголовки:

Дата |Этикетка |Сумма

Я хочу иметь возможность циклически проходить по каждой строке и определять, к какой категории относится данная строка, как определено меткой.

Например,

  1. 1 мая|Старбакс |$ 10,00
  2. 1 мая |BestBuy |2,00 $
  3. 2 мая |CostCo |$ 25,00

В этом сценарии строки 1 и 3 будут отнесены к категории «Кофе», что приведет к общей сумме 35,00 долл. США.

Как бы выглядел такой макрос?

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

У меня есть идея, которая может вам помочь, из-за нехватки времени я не могу сейчас создать макрос с реализацией всех моих идей:

  • добавить столбцы с этой формулой

    = НАЙТИ (НЕПОСРЕДСТВЕННО (АДРЕС (initial_row_of_your_match_list + counter; _column_of_your_match_list; 1)); cell_where_appears_StarbucksA_StarbucksB_CostCo_etc)

Выходные данные, в данном примере с учетом счетчика, который address дает "starbuck", будут равны 1 или числу (частичное совпадение) или #VALUE! (без совпадения), фактический макрос будет:

* while you loop the counter throu the list
* if the result value is '1' or a number copy the corresponding value of _
  the checking_list (Starbuck) to a Results_column.

наконец, вы можете классифицировать строки с помощью vlookup и sumif ячеек для получения окончательных результатов.

0 голосов
/ 28 июля 2011

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

=VLOOKUP(B2,<<label/category table address goes here, e.g. Categories!$A$1:$B$10>>,2,false)

Заполните это на вашем столе.

Теперь, если вам нужны промежуточные итоги суммы по категориям, вы можете легко получить ее с помощью сводной таблицы.

EDIT:

Если вы хотите частичное совпадение значений, как вы описали в комментариях ниже, вы можете использовать некоторые операции со строками перед передачей метки в функцию VLOOKUP:

=VLOOKUP(IF(MID(B2,LEN(B2)-1,1)=" ",LEFT(B2,LEN(B2)-2),B2),Categories!$A$1:$B$10,2,FALSE)

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

...