2013-12-12 4 views
1

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

У меня есть список, показывающий клиента и его порядок, как показано ниже. Клиенты я Колонка A и ORDERNUMBER в колонке B

Заказчик - Номер заказа

  • John - 123
  • Джон - 456
  • Джон - 789
  • Джон - 321
  • John - 654

    -

  • Полин - 251
  • Полин - 251
  • Полин - 251

И так далее для более чем 100 клиентов.

Как подсчитать количество или заказы каждого клиента и записать его в колонке C? В приведенном выше примере, Джон сделал 5 заказов и Pauline 3.

+0

Вы можете использовать формулу для этого? [Countif()] (http://office.microsoft.com/en-us/excel-help/countif-HP005209029.aspx) – MakeCents

+0

Но тогда мне нужно было бы сделать 100 + countif? – user3095761

+1

Это зависит от вас. Вы хотите, чтобы подсчет был рядом с каждым приказом, тогда да. Вы могли бы просто положить его в одну ячейку. Если вы хотите vba, и они отсортированы, я бы предложил цикл while. В противном случае вы все равно можете использовать countif, но в vba. Покажите нам, что у вас есть до сих пор ... – MakeCents

ответ

2

Я бы сделать это так

выборки данных

enter image description here

сортировать столбец А по имени (включая колонку B)

enter image description here

в столбце C строки 1 добавить формулу =COUNTIF(A:A,A1)

затем в строке B добавить эту формулу =IF(A2=A1,"",COUNTIF(A:A,A2))

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

enter image description here

+0

Отброшено вниз. Похоже, кто-то сделал это для ответного удара. Но лично я бы не использовал этот метод. Я бы выбрал для Pivot. Но для чего хочет OP, ваш ответ правильный :) –

+1

@SiddharthRout спасибо. Существует нет * предпочтительного * метода OP, поэтому, как только этот вопрос выдает еще несколько ответов, хотя бы мой ответ продемонстрирует один из способов сделать это - может ли какой-нибудь будущий посетитель найти его полезным. –

+1

@mehow Это отлично работает. Thx – user3095761

2

Вы могли бы просто использовать формулу:

=COUNTIF(A:A,"John") 

Это подсчитывают число ячеек в диапазоне A:A, которые соответствуют строке "John".

Вы можете также ссылаться на ячейки в соответствии с, например:

=COUNTIF(A:A,A1) 

Это подсчитывают количество клеток в колонке А, которые соответствуют ячейку A1, включая A1.

+0

все еще, OP все равно должен вручную сделать это для более 100 имен ... –

+1

Я только показал функцию countif с жестко запрограммированной строкой, чтобы продемонстрировать эту функцию. Я понял, что было бы очевидно, что это не способ сделать это. Использование ссылки на ячейку для второго столбца - это, безусловно, путь, и пользователю не нужно вручную делать это для каждого имени. – jgridley

0

Если вы не хотите использовать функцию, которую вы могли бы также используйте команду «Итого» (в Office 2010 она находится в меню «Данные») и выберите функцию «Счет» в поле «Использовать функцию» и Номер заказа в списке «Добавить промежуточный итог».

Для выполнения команды Subtotal вы должны иметь метки столбцов. Обратите внимание, что это будет вставлять новые строки вместо того, чтобы ставить итоговые значения в новый столбец, который может быть или не быть приемлемым для вас.

См. here для онлайн-справки Office относительно команды.

Смежные вопросы