Florentin Ganea · 22.10.2026 · 9 minute de citit
Răspunsul scurt: analiza ABC a stocurilor împarte articolele după valoarea ieșirilor la cost pe 12 luni: A sunt cele care fac primele 80% din valoare, B următoarele până la 95%, C restul. Analiza XYZ le împarte după cât de regulat se vând, cu coeficientul de variație lunar. Puse împreună, îți dau 9 clase, de la AX la CZ, și pentru fiecare o regulă de aprovizionare. În Excel îți trebuie un export ERP și cinci formule.
Contextul: Gestiunea stocurilor în distribuție: ghid complet. Acolo găsești pe scurt ce înseamnă clasele și unde se potrivește clasificarea în restul gestiunii. Aici e procedura completă, coloană cu coloană, pe un export cum scoți din orice ERP, plus ce faci cu fiecare combinație.
ABC îți spune unde stau banii, dar nu și cât de previzibil se vând articolele. Două articole A, fiecare cu 120.000 lei ieșiri pe an, pot arăta complet diferit: unul iese în fiecare lună cam 10.000 lei, celălalt iese în trei comenzi mari, cu luni goale între ele. Primul îl comanzi des și ții puțin stoc de siguranță. Pe al doilea, dacă ții stoc după medie, ai marfă în raft nouă luni din douăsprezece.
XYZ singur greșește invers. Îți spune că un articol se vinde regulat, dar un articol X de 3.000 lei pe an nu merită aceeași atenție ca unul X de 250.000 lei. Dacă urmărești toate articolele X la fel, pierzi timp pe mărunțișuri. Împreună, cele două clasificări îți spun și cât contează articolul, și cât de bine îi poți prevedea consumul.
Un singur raport: ieșirile pe articol pe ultimele 12 luni, la cost, cu data sau luna fiecărei ieșiri. În majoritatea ERP-urilor îl găsești ca „fișa de magazie”, „mișcări de stoc” sau „ieșiri pe articole”. Structura de care ai nevoie arată așa:
| Coloana | Exemplu | La ce folosește |
|---|---|---|
| A: Cod articol | ART-001 | cheia pe care aduni |
| B: Denumire | Ulei floarea-soarelui 1L, bax 15 | doar pentru citit |
| C: Luna | 2026-03 | împărțirea pe perioade pentru XYZ |
| D: Tip document | Factură, Bon consum, Transfer | ca să scoți transferurile |
| E: Cantitate | 220 | consumul pe perioadă |
| F: Valoare la cost | 20.900 | clasa ABC |
Dacă ERP-ul îți dă doar valoarea la preț de vânzare, cere și prețul de achiziție pe articol și calculează valoarea ca cantitate × cost. Pe săptămâni în loc de luni merită doar la articolele care ies zilnic; pentru restul, 12 luni sunt destule.
Formulele de mai jos sunt scrise cu punct și virgulă între argumente, cum le cere Excelul setat pe română. Dacă al tău e pe engleză, pui virgulă.
=SUMIFS(Export!F:F; Export!A:A; A2; Export!D:D; "<>Transfer")=C2/SUM($C$2:$C$900), cu intervalul până la ultimul tău rând.=SUM($D$2:D2). Primul capăt e fix, al doilea coboară cu rândul, așa că pe ultimul rând
trebuie să-ți iasă 100%. Dacă nu iese, ai un interval greșit în D.=IF(E2<=80%; "A"; IF(E2<=95%; "B"; "C")).Pragurile 80% și 95% sunt o convenție. Dacă ai un sortiment scurt, de 200 de articole, poți coborî A la 70% ca să rămână o listă pe care chiar o urmărești săptămânal. Pune pragurile în două celule separate și trimite formula la ele, ca să le schimbi fără să rescrii coloana. Ce nu faci: nu schimbi pragurile de la o lună la alta, altfel articolele sar între clase fără să se fi schimbat ceva în vânzări.
Un detaliu care încurcă: articolul care trece pragul de 80%. Cu formula de mai sus, dacă procentul cumulat ajunge la 81%, el intră în B. Unii îl pun în A. Alege o variantă și păstreaz-o.
=SUMIFS(Export!$E:$E; Export!$A:$A; $A2; Export!$C:$C; H$1; Export!$D:$D; "<>Transfer")=AVERAGE(H2:S2).=STDEV.P(H2:S2). Folosești STDEV.P, nu STDEV.S, pentru că iei toate cele 12 luni,
nu un eșantion.=IF(T2=0; ""; U2/T2). Testul pe zero te ferește de eroarea de împărțire la
articolele fără nicio ieșire.=IF(V2=""; "Z"; IF(V2<0,5; "X"; IF(V2<=1; "Y"; "Z"))). Un articol fără ieșiri iese Z,
și asta e corect: nu-l poți prevedea.=F2&W2. Pui un filtru pe ea și ai lista pentru fiecare din cele 9 clase.Pragurile 0,5 și 1 sunt orientative. La marfa cu cerere foarte stabilă, cum sunt produsele de bază, poți strânge X la 0,3. Contează, la fel ca la ABC, să le ții la fel de la o analiză la alta.
Matricea de mai jos e punctul de pornire pentru regulile de aprovizionare. Ghidul general grupează clasele; aici ai decizia pe fiecare combinație.
| Clasa | Ce înseamnă | Ce faci |
|---|---|---|
| AX | Valoare mare, consum stabil | Comenzi dese, în cantități mici. Stoc de siguranță mic, calculat, nu din ochi. Urmărire zilnică a stocului și a rupturilor. Aici se eliberează cei mai mulți bani. |
| AY | Valoare mare, consum care variază | Prognoză pe luni, cu sezonul și promoțiile puse separat. Stoc de siguranță mai mare decât la AX, revizuit săptămânal. |
| AZ | Valoare mare, consum neregulat | Nu ții stoc din medie. Comanzi la cererea clientului sau negociezi cu furnizorul un termen scurt de livrare. Afli dinainte comenzile mari de la vânzări. |
| BX | Valoare medie, consum stabil | Praguri automate de reaprovizionare din formulă, verificate lunar. Bun candidat pentru comanda automată din ERP. |
| BY | Valoare medie, consum care variază | Praguri automate cu stoc de siguranță ajustat pe sezon, revizuite trimestrial. |
| BZ | Valoare medie, consum neregulat | Stoc minim, comenzi pe cerere unde se poate. Verifici lunar stocul fără ieșire: de aici apare des stocul mort. |
| CX | Valoare mică, consum stabil | Comenzi rare, în cantități mari, ca să nu pierzi timp cu comenzi mici. Stocul lor costă puțin. |
| CY | Valoare mică, consum care variază | Comenzi rare, prag simplu, verificare trimestrială. Nu le dai timp de cumpărător. |
| CZ | Valoare mică, consum neregulat | Candidat la scoaterea din sortiment. Dacă îl păstrezi pentru un client anume, îl aduci doar la comandă fermă. |
Un lucru de reținut: AZ nu e un articol prost. E un articol important pe care nu-l poți prevedea din istoric, deci informația vine de la vânzări, nu din Excel. Iar înainte să scoți un CZ din sortiment, verifică dacă nu e cumpărat de un client mare împreună cu articole A: pierderea lui poate costa mai mult decât stocul.
Cum transformi clasa în cifre de comandă, adică stoc de siguranță și punct de reaprovizionare pe articol, e în articolul despre stocul de siguranță.
Trimestrial, pe ultimele 12 luni. Lunar e prea des: articolele de la granița dintre clase sar dintr-o parte în alta și cumpărătorul nu mai știe după ce regulă comandă. O dată pe an e prea rar: articolele noi și cele care au căzut din vânzări rămân luni întregi în clasa greșită.
După fiecare refacere, uită-te doar la articolele care și-au schimbat clasa. Un articol care a coborât din A în C fără să fi ieșit din sortiment e primul pe care îl verifici: de regulă are stoc făcut pentru vânzările de altădată.
Clasele BZ și CZ sunt locul de unde pornești când cauți stoc fără mișcare. Pașii de lichidare sunt în articolul despre stocul mort.
Dacă vrei să afli direct, în bani, ce stă în raft fără să se vândă și unde comanzi peste consum, cu pragurile de reaprovizionare recalculate, auditul de stoc le livrează în 5 zile, din același export ERP.
De obicei puține: adesea în jur de o cincime din articole fac 80% din valoarea ieșirilor, iar clasa C are jumătate sau mai mult din sortiment. Nu fixa numărul de articole, fixează pragul de valoare. Dacă îți iese că 60% din articole sunt în A, verifică exportul: de regulă ai luat prețul de vânzare, ai amestecat transferurile sau ai un sortiment foarte îngust.
Pentru stoc și aprovizionare, pe valoarea ieșirilor la cost: acolo stau banii. Un ABC pe cantitate pune în A articolele ieftine care se vând în bucăți multe și scoate din A produsele scumpe. Pentru așezarea mărfii în depozit faci separat un ABC pe numărul de linii de comandă, pentru că acolo contează de câte ori mergi la raft, nu cât costă marfa.
Pe ultimele 12 luni, ca să prinzi sezonul o singură dată, întreg. Pe 3 sau 6 luni, un articol de vară ajunge în A sau în C după luna în care ai tras exportul. Pentru XYZ folosești aceleași 12 luni, împărțite pe luni; pe săptămâni doar dacă ai articole care se vând zilnic și vrei să vezi variația mai fin.
Le scoți din analiză în primele 3 până la 6 luni și le urmărești separat, cu o țintă stabilită la listare. Cu două luni de istoric, un articol nou iese aproape sigur în C, pentru că valoarea pe 12 luni e mică, și în Z, pentru că lunile fără date apar ca zerouri. Dacă îl clasifici așa, îi tai stocul exact când are nevoie de el.
Unele ERP-uri au un raport ABC, mai rar unul XYZ. Verifică trei lucruri înainte să te bazezi pe el: dacă lucrează la cost sau la preț de vânzare, dacă exclude transferurile între depozite și ce perioadă ia. Dacă nu poți afla, fă o dată analiza în Excel, compară clasele și folosește raportul din ERP doar dacă iese la fel.
Trimiți exportul din ERP. În 5 zile lucrătoare primești, în bani, stocul fără mișcare, categoriile unde comanzi peste consum și pragurile recalculate.
Florentin Ganea · 22.10.2026 · 9 min read
The short answer: ABC inventory analysis splits items by the value of their outflows at cost over 12 months: A are the ones that make up the first 80% of value, B the next ones up to 95%, C the rest. XYZ analysis splits them by how regularly they sell, using the monthly coefficient of variation. Put together, they give you 9 classes, from AX to CZ, and a purchasing rule for each. In Excel you need one ERP export and five formulas.
The context: Inventory management in distribution: the complete guide. There you'll find a short explanation of the classes and where the classification fits in the rest of inventory management. Here is the full procedure, column by column, on an export you can pull from any ERP, plus what to do with each combination.
ABC tells you where the money is, but not how predictably items sell. Two A items, each with 120,000 lei of outflows a year, can look completely different: one goes out at about 10,000 lei every month, the other in three large orders, with empty months in between. The first one you order often and hold little safety stock. For the second, if you stock it based on the average, you'll have goods on the shelf nine months out of twelve.
XYZ alone gets it wrong the other way. It tells you an item sells regularly, but an X item worth 3,000 lei a year doesn't deserve the same attention as an X item worth 250,000 lei. If you track all X items the same way, you waste time on small change. Together, the two classifications tell you both how much an item matters and how well you can predict its consumption.
A single report: outflows per item over the last 12 months, at cost, with the date or month of each outflow. In most ERPs you'll find it as the stock card, stock movements or outflows by item. The structure you need looks like this:
| Column | Example | What it's for |
|---|---|---|
| A: Item code | ART-001 | the key you sum on |
| B: Description | Sunflower oil 1L, case of 15 | for reading only |
| C: Month | 2026-03 | splitting into periods for XYZ |
| D: Document type | Invoice, Consumption note, Transfer | to remove transfers |
| E: Quantity | 220 | consumption per period |
| F: Value at cost | 20,900 | the ABC class |
If the ERP only gives you value at selling price, ask for the purchase price per item too and calculate value as quantity × cost. Weeks instead of months are only worth it for items that go out daily; for the rest, 12 months are enough.
The formulas below use commas between arguments, as Excel expects with English settings. If yours is set to Romanian or another locale with a decimal comma, use semicolons.
=SUMIFS(Export!F:F, Export!A:A, A2, Export!D:D, "<>Transfer")=C2/SUM($C$2:$C$900), with the range going down to your last row.=SUM($D$2:D2). The first end is fixed, the second moves down with the row, so the last
row must come to 100%. If it doesn't, the range in D is wrong.=IF(E2<=80%, "A", IF(E2<=95%, "B", "C")).The 80% and 95% thresholds are a convention. If you have a short range of 200 items, you can lower A to 70% so it stays a list you actually review every week. Put the thresholds in two separate cells and point the formula at them, so you can change them without rewriting the column. What you don't do: change the thresholds from one month to the next, or items jump between classes without anything changing in sales.
One detail that trips people up: the item that crosses the 80% line. With the formula above, if the cumulative share reaches 81%, it goes into B. Some put it in A. Pick one and stick with it.
=SUMIFS(Export!$E:$E, Export!$A:$A, $A2, Export!$C:$C, H$1, Export!$D:$D, "<>Transfer")=AVERAGE(H2:S2).=STDEV.P(H2:S2). You use STDEV.P, not STDEV.S, because you're taking all 12 months,
not a sample.=IF(T2=0, "", U2/T2). The zero test protects you from the division error on
items with no outflows at all.=IF(V2="", "Z", IF(V2<0.5, "X", IF(V2<=1, "Y", "Z"))). An item with no outflows comes out
as Z, and that's right: you can't predict it.=F2&W2. Put a filter on it and you have the list for each of the 9 classes.The 0.5 and 1 thresholds are indicative. For goods with very stable demand, such as staple products, you can tighten X to 0.3. As with ABC, what matters is keeping them the same from one analysis to the next.
The matrix below is the starting point for your purchasing rules. The general guide groups the classes; here you have the decision for each combination.
| Class | What it means | What you do |
|---|---|---|
| AX | High value, steady consumption | Frequent orders, in small quantities. Small safety stock, calculated, not eyeballed. Daily tracking of stock and stockouts. This is where the most cash is freed up. |
| AY | High value, varying consumption | Monthly forecast, with seasonality and promotions handled separately. Safety stock higher than for AX, reviewed weekly. |
| AZ | High value, irregular consumption | Don't stock from the average. Order against customer demand, or negotiate a short lead time with the supplier. Get large orders from sales in advance. |
| BX | Medium value, steady consumption | Automatic reorder points from the formula, checked monthly. A good candidate for automatic ordering from the ERP. |
| BY | Medium value, varying consumption | Automatic reorder points with safety stock adjusted for the season, reviewed quarterly. |
| BZ | Medium value, irregular consumption | Minimum stock, order on demand where possible. Check monthly for stock with no outflows: dead stock often starts here. |
| CX | Low value, steady consumption | Infrequent orders in large quantities, so you don't waste time on small orders. Their stock costs little. |
| CY | Low value, varying consumption | Infrequent orders, a simple reorder point, quarterly review. Don't spend buyer time on them. |
| CZ | Low value, irregular consumption | A candidate for removal from the range. If you keep it for a specific customer, bring it in only against a firm order. |
One thing to remember: AZ isn't a bad item. It's an important item you can't predict from history, so the information comes from sales, not from Excel. And before you drop a CZ item from the range, check whether a large customer buys it together with A items: losing it may cost more than the stock.
How to turn the class into ordering numbers, meaning safety stock and reorder point per item, is covered in the article on safety stock.
Quarterly, over the last 12 months. Monthly is too often: items on the border between classes jump back and forth and the buyer no longer knows which rule to order by. Once a year is too rarely: new items and those whose sales have dropped stay in the wrong class for months.
After each update, look only at items that changed class. An item that dropped from A to C without leaving the range is the first one you check: it usually has stock built for sales it no longer makes.
Classes BZ and CZ are where you start when you look for stock that isn't moving. The clearance steps are in the article on dead stock.
If you want to know straight away, in money, what sits on the shelf without selling and where you order above consumption, with reorder points recalculated, the stock audit delivers it in 5 days, from the same ERP export.
Usually few: often around a fifth of items make up 80% of the value of outflows, and class C holds half or more of the range. Don't fix the number of items, fix the value threshold. If you find that 60% of items are in A, check the export: usually you took the selling price, mixed in transfers, or have a very narrow range.
For stock and purchasing, by the value of outflows at cost: that's where the money is. An ABC by quantity puts cheap items that sell in large numbers into A and pushes expensive products out of A. For deciding where goods go in the warehouse, you do a separate ABC by number of order lines, because there what matters is how often you go to the shelf, not what the goods cost.
The last 12 months, so you capture the season once, in full. Over 3 or 6 months, a summer item lands in A or in C depending on the month you pulled the export. For XYZ you use the same 12 months, split by month; by week only if you have items that sell daily and you want to see the variation in more detail.
Take them out of the analysis for the first 3 to 6 months and track them separately, with a target set at listing. With two months of history, a new item almost certainly comes out as C, because its 12-month value is small, and as Z, because the months without data show up as zeros. If you classify it that way, you cut its stock exactly when it needs it.
Some ERPs have an ABC report, fewer an XYZ one. Check three things before relying on it: whether it works at cost or at selling price, whether it excludes transfers between warehouses, and what period it takes. If you can't find out, do the analysis once in Excel, compare the classes, and use the ERP report only if it comes out the same.
Send your ERP export. Within 5 working days you get, in money, the stock that isn't moving, the categories where you order above consumption and the recalculated reorder points.