Преброяване на множество елементи в Excel въз основа на конкретни критерии

Прегледах други въпроси и не можах да намеря това, което ми трябваше.

Най-добре, ако обясня, както следва:

Имам електронна таблица, която има три колони в нея:

Име на продукта Доставчик

Някои доставчици имат същия продукт.

Трябва да преброя колко имена на продукти са идентични по доставчик.

Цялата помощ е високо ценена.

Благодаря ти,

потребител1114330

Примерни данни


person lcm    schedule 16.06.2012    source източник
comment
Видях в един от предишните ви въпроси, stackoverflow.com/q/10610354/293078, че имате предложения за използване на завъртане маси. За този въпрос, който изглежда е същият или подобен проект, осевите таблици също биха били правилният начин.   -  person Doug Glancy    schedule 17.06.2012
comment
Да, този е различен от последния пост. Една обобщена таблица работи, но за тази няма. Потребителите ще използват Google Docs и обобщените таблици са почти безполезни в Gdocs. Използвам excel за подготовка на отчетите и ще импортирам в gdocs, когато завърша, за да споделя.   -  person lcm    schedule 17.06.2012
comment
Може би това, което трябва да направя, е да взема уникалните продуктови записи, да изтрия дубликати и след това да използвам някакъв вид vlookup с countif?   -  person lcm    schedule 17.06.2012
comment
За да получите добър отговор, трябва да изложите ситуацията по-подробно. Дайте пример за вашите данни и резултатите, които очаквате.   -  person Doug Glancy    schedule 17.06.2012
comment
@DougGlancy - Примери по-горе.   -  person lcm    schedule 17.06.2012
comment
Имате ли нужда от VBA за това? Това може да се реши с помощта на проста формула на Excel...   -  person Siddharth Rout    schedule 17.06.2012
comment
@SiddharthRout - Бих искал да знам тази проста формула, сър. Вярвам, че сте прав, но съм изгубен... напоследък не съм прекарвал много време в Excel.   -  person lcm    schedule 17.06.2012


Отговори (1)


Поставете тази формула в клетка C1

 =SUMPRODUCT(($A$1:$A$10=A1)*($B$1:$B$10=B1))

МОМЕНТНА СНИМКА

въведете описание на изображението тук

Ако все пак искате VBA, вижте това

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim lrow As Long

    Set ws = Sheets("Sheet1")

    With ws
        lrow = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("C1:C" & lrow).Formula = "=SUMPRODUCT(($A$1:$A$" & lrow & _
                                        "=A1)*($B$1:$B$" & lrow & "=B1))"
    End With
End Sub
person Siddharth Rout    schedule 17.06.2012
comment
Благодаря...имате ли предложения как да използвате първия не-vba скрипт срещу 102k реда? - person lcm; 17.06.2012
comment
Мда. Променете $10 в горната формула на последния номер на ред и след това поставете формулата в клетка C1. След това просто щракнете два пъти върху автоматичното попълване, така че формулите да се копират надолу до последната клетка. - person Siddharth Rout; 17.06.2012
comment
=SUMPRODUCT(($G$2:$G$102667=G2)*($H$2:$H$102667=H2)) Не работи..показва #VALUE! ..мисли? - person lcm; 17.06.2012
comment
Къде сте сложили тази формула? I2? Можете също така да качите моментна снимка на вашите данни? - person Siddharth Rout; 17.06.2012
comment
В K2 е...не, съжалявам, няма налично качване на моментна снимка, имам само 9 повторения точки, трябват ми 10. - person lcm; 17.06.2012
comment
Добре, току-що повиших поста ти. Опитай сега :-) - person Siddharth Rout; 17.06.2012
comment
Надявам се, че ви хванах..вижте примера. Вашата формула работи само докато не използвам количеството редове, споменато по-горе (~102k). - person lcm; 17.06.2012
comment
Между другото - Благодаря, че гласувахте за моя въпрос. - person lcm; 17.06.2012
comment
Това е странно, работи перфектно от моя страна. Ако искате, можете ли да качите файла си в www.wikisend.com и да споделите връзката тук? - person Siddharth Rout; 17.06.2012
comment
работи! Имаше #VALUE! което предотврати отчитането на каквито и да е числа. Благодаря ти!! - person lcm; 17.06.2012
comment
Това работи, макар и не много бързо. Имате ли някакви предложения как да обработим нещо подобно най-бързо? Върви много много бавно... - person lcm; 17.06.2012
comment
Пивот таблицата, както е предложена от Дъг, ще бъде много бърза. - person Siddharth Rout; 17.06.2012
comment
Ако имате Excel 2007 или по-нова версия, можете да използвате COUNTIFS, което е много по-бързо в Excel, т.е.=COUNTIFS(G:G,G2,H:H,H2) - person barry houdini; 17.06.2012
comment
това са много формули... Все още намирам Excel за много бавен, когато листовете съдържат 100 хиляди формули в тях. Обикновено означава, че някой трябва да използва SQL по-добре, преди данните дори да стигнат до Excel. - person whytheq; 18.06.2012
comment
Защо не използвате Pivot? - person Siddharth Rout; 18.06.2012
comment
Сигурно пропускам нещо очевидно. Разгледах формулата на sumproduct на OP и твоята, изглеждат идентични. Тогава защо вашият работи, а неговият не? - person JimmyPena; 19.06.2012