# Управление на наличности в Google Таблици

> Как да водите наличности в Google Таблици с дневник на движенията, работещи формули, сигнали за ниска наличност, защита и история, плюс ограниченията.

Source: https://www.lightinventory.com/bg/rakovodstva/upravlenie-na-nalichnosti-v-google-tablitsi · Last updated: 2026-10-28

Можете да водите надеждни наличности в Google Таблици, ако никога не пишете върху вече въведено количество. Записвайте всяко заприхождаване, изписване, корекция и прехвърляне като нов ред в дневник на движенията и оставете формулите да изчисляват наличното количество. Само това решение за структурата ви дава наличности по местоположения, сигнали за ниска наличност и история, която можете да прочетете, и всичко това с вградени функции.

Това ръководство разглежда структурата на таблицата, формулите, валидирането на данни, защитата, историята и ограниченията на Google Таблици, които имат значение. В края честно показва къде самите Таблици спират да са достатъчни.

## Структура на таблицата

Използвайте една таблица с три раздела. Всеки раздел има една задача.

| Раздел | Един ред е | Редактирате го, когато |
|---|---|---|
| `Items` | Един продукт или една част | Добавяте артикул или променяте данните му |
| `Locations` | Един склад, стая, рафт или бус | Добавяте или преименувате място |
| `Movements` | Една промяна в наличността | Нещо влиза, излиза или се премества |

Имената на разделите и заглавията на колоните в това ръководство са на английски, защото формулите по-долу ги използват точно така.

### Items

| Колона | Заглавие | Пример | Бележки |
|---|---|---|---|
| A | SKU | `BOLT-M8-40` | Уникален, никога не се използва повторно. Форматирайте колоната като обикновен текст |
| B | Name | Шестостенен болт M8 × 40 mm | |
| C | Unit | кутия | Мерната единица, която използва всяко движение |
| D | Reorder point | 20 | Когато наличността стигне до тази стойност, поръчайте отново |
| E | On hand | *(формула)* | Никога не се въвежда ръчно |
| F | Status | *(формула)* | `Reorder` или `OK` |

### Locations

| Колона | Заглавие | Пример |
|---|---|---|
| A | Location | `WH1` |
| B | Name | Централен склад |

### Movements: дневникът

| Колона | Заглавие | Пример | Бележки |
|---|---|---|---|
| A | Date | 2026-10-28 | Истинска стойност за дата, а не текст |
| B | SKU | `BOLT-M8-40` | Падащ списък от `Items` |
| C | Location | `WH1` | Падащ списък от `Locations` |
| D | Qty | `-5` | Положителното число добавя наличност, отрицателното я намалява |
| E | Type | `Issue` | `Receive`, `Issue`, `Adjust` или `Transfer` |
| F | Reference | PO-1042 | Поръчка за покупка, задача или лист от преброяване |
| G | Entered by | Иван | Кой го е записал |
| H | Note | Повредено при транспорта | Защо, когато не е очевидно |

Прехвърлянето е два реда: `-5` в изходното местоположение и `+5` в целевото, и двата с тип `Transfer` и една и съща референция. Преброяване, при което се оказват с 3 по-малко от очакваното, е един ред `Adjust` с `-3`.

### Защо дневник, в който само се добавя, е по-добър от колона с количество

Най-често срещаната таблица за наличности има една колона „Количество“, която хората презаписват. Тя работи, докато нещо не се обърка, и тогава не може да ви каже какво се е случило.

- **Презаписаното число няма история.** Ако 40 стане 25, таблицата не казва дали 15 са продадени, изгубени или грешно преброени. Редът в дневника казва `-15`, `Issue`, `JOB-311`, с дата и име.
- **Двама души не могат безопасно да редактират едно число.** Ако двама вземат по 5 кутии и двамата напишат 35 върху 40, губите едно движение. Два добавени реда с `-5` дават верния сбор.
- **Грешките се поправят с добавяне, а не с изтриване.** Грешен ред се коригира с обратен ред, така че и грешката, и поправката остават видими.
- **Наличността към всяка дата е само на една формула разстояние.** Сумирайте движенията до тази дата.
- **Наличността по местоположения идва наготово.** Същите редове дават общите стойности по артикул, по местоположение или и по двете.

Правилото за всички, които използват таблицата, е просто: добавяйте редове в `Movements` и никога не редактирайте и не изтривайте старите.

## Формули за наличното количество

Всички формули по-долу предполагат структурата на разделите и колоните по-горе, със заглавия на ред 1.

> **Note:** Формулите разделят аргументите със запетаи. Ако таблицата ви използва локал с десетична запетая, например България, Google Таблици очаква точка и запетая: заменете запетаите между аргументите (не тези в текст в кавички) с `;`.

### Налично количество по артикул

В `Items!E2`, след което попълнете надолу:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2)
```

[SUMIFS](https://support.google.com/docs/answer/3238496?hl=bg) сумира всяко `Qty` в дневника, чийто SKU съвпада с артикула на този ред.

За да попълните цялата колона с една формула, поставете това в `Items!E2` и оставете клетките под нея празни:

```
=ARRAYFORMULA(IF(A2:A="", "", SUMIF(Movements!B:B, A2:A, Movements!D:D)))
```

### Налично количество по артикул и местоположение

За един артикул в едно местоположение, например местоположението, въведено в клетка `H1` на `Items`:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$C:$C, $H$1)
```

За пълна таблица с наличности в отделен раздел използвайте [QUERY](https://support.google.com/docs/answer/3093343?hl=bg). Тази формула изброява всяка двойка артикул и местоположение, които имат движения:

```
=QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C label sum(D) 'On hand'", 1)
```

Тази превръща местоположенията в колони, с по един ред за артикул:

```
=QUERY(Movements!A1:H, "select B, sum(D) where B is not null group by B pivot C", 1)
```

> **Note:** QUERY очаква по един тип данни в колона. Според документацията на Google при смесени типове в колона „типът данни на мнозинството определя типа данни на колоната“, а останалите стойности се третират като празни. Пазете SKU като обикновен текст, а датите като истински дати.

### Наличност към минала дата

За да видите какво е било налично в края на определен ден, например датата в `Items!H2`:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$A:$A, "<="&$H$2)
```

### Откриване на отрицателна наличност

Едно местоположение не може да има по-малко от нула. Тази формула изброява всяка двойка артикул и местоположение под нулата, което обикновено означава липсващо заприхождаване или печатна грешка:

```
=QUERY(QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C", 1), "select * where Col3 < 0", 1)
```

Вътрешната QUERY създава общите стойности по местоположения; външната оставя само отрицателните редове. Празен резултат означава, че нито едно местоположение не е под нулата.

## Сигнали за ниска наличност и точки за поръчка

### Колона за статус

В `Items!F2`, след което попълнете надолу:

```
=IF(D2="", "", IF(E2<=D2, "Reorder", "OK"))
```

Статусът е празен, когато не е зададена точка за поръчка, така че новите артикули не дават фалшива тревога.

### Маркиране на редовете, които трябва да се поръчат

1. Изберете `A2:F` в раздела `Items`.
2. Щракнете върху **Формат → Условно форматиране** (Format → Conditional formatting).
3. В **Форматиране на клетките, ако…** (Format cells if) изберете **Персонализираната формула е** (Custom formula is).
4. Въведете `=AND($D2<>"", $E2<=$D2)`.
5. Изберете цвят за запълване и щракнете върху **Готово** (Done).

Знаците за долар държат колоните фиксирани, докато редът се променя, така че целият ред се оцветява. Google отбелязва, че формулите за условно форматиране [могат да препращат само към същия лист](https://support.google.com/docs/answer/78413?hl=bg), освен ако не използвате `INDIRECT`. Затова наличното количество и точката за поръчка са в раздела `Items` една до друга.

Със същата функция можете да маркирате редовете в дневника, чийто знак не съответства на типа им. Изберете `A2:H` в `Movements` и използвайте:

```
=OR(AND($E2="Receive", $D2<0), AND($E2="Issue", $D2>0))
```

### Основи на точката за поръчка

Точката за поръчка отговаря на един въпрос: колко ниско може да падне наличността, преди да трябва да поръчате, така че новата доставка да пристигне, преди да свършите? Основната формула е:

**Точка за поръчка = среден дневен разход × време за доставка в дни + резервна наличност**

- **Средният дневен разход** идва от вашия дневник.
- **Времето за доставка** е броят дни между поръчката и момента, в който стоката е на рафта.
- **Резервната наличност** е буферът за бавни доставки или натоварени седмици.

Добавете три помощни колони в `Items`: G „Avg daily use (30 days)“ (среден дневен разход за 30 дни), H „Lead time (days)“ (време за доставка в дни) и I „Safety stock“ (резервна наличност). В `G2`:

```
=-SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$E:$E, "Issue", Movements!$A:$A, ">="&(TODAY()-30))/30
```

Знакът минус превръща отрицателните количества `Issue` в положителен разход. След това задайте точката за поръчка в `D2`:

```
=ROUNDUP(G2*H2 + I2, 0)
```

Например артикул с разход 4 кутии на ден, време за доставка 5 дни и резервна наличност 10 кутии има точка за поръчка 4 × 5 + 10 = 30. Преразглеждайте времето за доставка и резервната наличност, когато се сменят доставчиците или сезоните; формулата е толкова добра, колкото са тези две входни стойности.

## Валидиране на данни и падащи списъци

Падащите списъци спират печатните грешки, които развалят SUMIFS и QUERY: SKU с интервал накрая или местоположение, изписано по два начина, никога не съвпада.

### Добавяне на падащ списък от диапазон

1. В `Movements` изберете `B2:B`.
2. Щракнете върху **Данни → Валидиране на данните → Добавяне на правило** (Data → Data validation → Add rule).
3. В **Критерии** (Criteria) изберете **Падащ списък от диапазон** (Dropdown from a range) и въведете `Items!A2:A`.
4. Щракнете върху **Готово** (Done).

Повторете за `C2:C` с `Locations!A2:A`. За `E2:E` изберете **Падащ списък** (Dropdown) и добавете елементите `Receive`, `Issue`, `Adjust` и `Transfer`. Google предлага и **Вмъкване → Падащ списък** (Insert → Dropdown), както и опцията **Падащ списък** (Dropdown) в менюто с десен бутон; всички те отварят същия [панел с правила за валидиране на данните](https://support.google.com/docs/answer/186103?hl=bg).

### Отхвърляне или предупреждение

По подразбиране Google Таблици отхвърля въвеждане, което не съответства на списъка. Ако искате вместо това да го разрешите с предупреждение, отворете **Разширени опции** (Advanced options) и в **Ако данните са невалидни:** (If the data is invalid:) изберете **Показване на предупреждение** (Show a warning). За дневник на наличностите оставете отхвърлянето включено: движение с непознат SKU почти винаги е грешка.

Добавете и правило за валидиране за `D2:D`, което приема само числа, и за `A2:A`, което приема само дати. Количество, въведено като текст, се пропуска от SUMIFS, така че наличността тихо остава грешна.

## Защита на диапазони и внимателно споделяне

Разрешенията в Google Таблици имат две нива и двете са важни.

1. **Споделянето** определя кой може да отвори файла и дали е читател, коментиращ или редактор. Задавате го с **Споделяне** (Share) и то важи за целия файл.
2. **Защитените листове и диапазони** стесняват това, което редакторите могат да променят във файла.

### Защитете това, в което никой не бива да пише

1. Щракнете върху **Данни → Защитени листове и диапазони** (Data → Protect sheets and ranges).
2. Щракнете върху **Добавяне на лист или диапазон** (Add a sheet or range).
3. Изберете **Диапазон** (Range) и посочете `Items!E2:F` (колоните с формули).
4. Щракнете върху **Задаване на разрешения** (Set permissions).
5. Изберете **Ограничаване на това кой може да редактира този диапазон** (Restrict who can edit this range), изберете **Само вие** (Only you) и щракнете върху **Готово** (Done).

Защитете по същия начин целия раздел `Locations`, ако списъкът рядко се променя. В `Movements` хората трябва да могат да добавят редове, така че строгата защита не е подходяща. Вместо това използвайте **Показване на предупреждение при редактиране на този диапазон** (Show a warning when editing this range) за съществуващите редове; така хората трябва да потвърдят, преди да променят историята.

Знайте какво не прави защитата. Според Google защитата [„не бива да се използва като мярка за сигурност“](https://support.google.com/docs/answer/1218656?hl=bg), а хората „могат да отпечатват, копират, поставят, както и да импортират и експортират копия на защитена таблица“. Собственикът винаги може да редактира защитен диапазон и не можете да защитите данни с парола. Подробностите стъпка по стъпка са в [Защита на лист или диапазон](/bg/pomosht/google-tablitsi/zashtita-na-diapazoni).

### Споделяйте с най-тясната роля

- Давайте роля **Читател** (Viewer) на хората, които само трябва да проверяват наличности.
- Давайте роля **Редактор** (Editor) само на хората, които записват движения.
- Настройките за споделяне на Google ви позволяват да забраните на редакторите да споделят файла, както е описано в [Споделяне на файлове от Google Диск](https://support.google.com/drive/answer/2494822?hl=bg).

## Хронология на версиите и хронология на редакциите на клетките

Google Таблици пази два вида история: версии на целия файл и хронологията на редакциите на отделна клетка. [Не можете да видите хронологията на версиите](https://support.google.com/docs/answer/190843?hl=bg) без разрешение за редактиране на файла.

### Хронология на версиите

За да видите по-стари версии, щракнете върху **Последна редакция** (Last edit) горе вдясно в таблицата. Изберете версия в десния панел, за да видите кой какво е променил. По подразбиране Google Таблици скрива непроменените редове; щракнете върху **Показване на непроменените редове** (Show unmodified rows), за да видите всичко.

Можете да възстановите версия или да направите копие от нея. Възстановяването на версия на таблица изчиства хронологията на редакциите клетка по клетка за промените, направени преди възстановяването, така че при натоварен файл с наличности копието обикновено е по-безопасният избор. Вижте [Възстановяване на по-стара версия](/bg/pomosht/google-tablitsi/vazstanovyavane-na-versiya).

Можете да именувате до 15 версии в една таблица, а именуваните версии не се обединяват. Именувайте версия след всяко преброяване, например „Преброяване 2026-10-31“, за да можете винаги да се върнете към нея.

### Хронология на редакциите на клетка

Щракнете с десния бутон върху клетка и изберете **Показване на хронологията на редакциите** (Show edit history), за да видите кой е променил тази клетка. Google изброява промени, които може да не се показват там:

- добавени или изтрити редове и колони;
- промени във форматирането на клетката;
- промени, направени преди възстановяване на предишна версия;
- промени, направени от формули.

Последната точка е важна за таблица, базирана на формули: клетките `On hand` се променят чрез формули, така че хронологията на редакциите им няма да обясни новото число. Редовете в дневника ще го обяснят. Повече подробности ще намерите в [Как да откриете кой е променил клетка](/bg/pomosht/google-tablitsi/koy-e-promenil-kletka).

### Известия за редакции

Щракнете върху **Инструменти → Настройки за известията → Известия за редакции** (Tools → Notification settings → Edit notifications), за да получавате имейл, когато други променят таблицата, веднага или като обобщение веднъж дневно. Google отбелязва, че [можете да настройвате известия само за себе си](https://support.google.com/docs/answer/91588?hl=bg).

## Ограничения на Google Таблици, които да предвидите

Това са ограниченията, документирани от Google, проверени на 28 октомври 2026 г. Пълният списък, с това какво да направите близо до всяко от тях, е в [Ограничения на Google Таблици за наличности](/bg/pomosht/google-tablitsi/ogranicheniya).

| Ограничение | Какво документира Google |
|---|---|
| Клетки в таблица | До 20 милиона клетки или 100 MB за таблици, създадени в Google Таблици или преобразувани в Google Таблици ([ограничения за файлове в Диск](https://support.google.com/drive/answer/37603?hl=bg)). Google го увеличи от 10 милиона през септември 2026 г. ([Workspace Updates](https://workspaceupdates.googleblog.com/2026/09/doubled-cell-limits-in-google-sheets-now-generally-available.html)) |
| Едновременно редактиране | Един файл в Google може да се редактира активно само в до 100 отворени раздела на браузъра или устройства едновременно ([ограничения за споделяне](https://support.google.com/drive/answer/2494822?hl=bg)) |
| Споделяне | До 600 отделни имейл адреса на файл ([ограничения за споделяне](https://support.google.com/drive/answer/2494822?hl=bg)) |
| Именувани версии | До 15 на таблица ([хронология на версиите](https://support.google.com/docs/answer/190843?hl=bg)) |
| IMPORTRANGE | До 10 MB получени данни на заявка; проверява за актуализации на всеки час, докато документът е отворен ([IMPORTRANGE](https://support.google.com/docs/answer/3093340?hl=bg)) |

Дневникът нараства с по един ред за всяко движение. При 8 колони 1000 движения на месец добавят 8000 клетки на месец, което е около 96 000 на година. Повечето малки екипи никога не достигат ограничението за клетки, но големите файлове се забавят много преди това. Архивирайте приключените години в отделен файл и пренесете крайното салдо като по един ред `Adjust` за всеки артикул и местоположение.

## Кога самите Таблици спират да са достатъчни

Описаната структура работи добре за няколко внимателни души. Когато екипът расте, следните пропуски започват да струват време или пари.

- **Едновременни редакции.** Google Таблици показва редакциите на живо, но нищо не пречи двама души да променят един и същ ред или някой да сортира дневника, докато друг пише. Нищо не проверява промяната, преди тя да бъде записана.
- **Няма одобрения.** Всеки редактор може да запише корекция от 500 броя или да промени точка за поръчка. Няма стъпка, в която друг човек първо да я прегледа.
- **История, която трудно се проверява.** Хронологията на версиите е групирана и [ревизиите понякога може да бъдат обединени](https://support.google.com/docs/answer/190843?hl=bg). Хронологията на редакциите на клетките пропуска резултатите от формули, вмъкнатите и изтритите редове и промените във форматирането, а възстановяването я изчиства. Собственикът на файл в личен профил в Google може окончателно да изтрие неименуваните му версии. Нищо не доказва, че историята, която виждате, е пълна.
- **Случайни презаписвания.** Едно поставяне върху грешен диапазон или „попълване надолу“ твърде далеч променя наведнъж стотици редове в дневника. Хронологията на версиите може да го възстанови, ако някой забележи.
- **Разрешенията са на ниво файл.** Редакторът може да редактира всеки раздел и всяко местоположение, освен ако не изградите защита ръчно, а според собственото описание на Google защитата не е мярка за сигурност. Не можете да кажете „този човек записва движения само за северния склад“.
- **Правилата са в главите на хората.** „Никога не редактирайте стари редове“ и „винаги добавяйте референция“ са договорености. Таблицата не ги налага.

Ако това ви звучи познато, имате три възможности: да приемете риска, да преминете към отделна система за наличности или да запазите таблицата и да добавите контрол върху нея.

## Как LightInventory добавя контрол към същата таблица

LightInventory е приложение за наличности, изградено върху Google Таблица, която е ваша собственост. То е в процес на разработка и все още не е общодостъпно. Използва същата структура на дневника като това ръководство, а приложението налага описаните правила, вместо да ги оставя на договореностите.

- **Данните ви остават в таблицата ви.** Артикулите, местоположенията, движенията и дневникът на промените са раздели във вашата собствена таблица. Ако спрете да използвате LightInventory, запазвате файла.
- **Всяка промяна се записва.** Всяка промяна се записва в раздел `Log` с това кой я е направил, кога, стойността преди и стойността след нея. Грешките се поправят с компенсиращ запис, никога чрез изтриване на историята.
- **История, разкриваща манипулации.** Верига от хешове с ключ на дневника, без вашите стойности, се съхранява извън файла ви и се закрепва външно, така че тихомълком редактиран или изтрит ред в дневника не преминава проверката. Вижте [одитната следа](/bg/funktsii/oditna-sleda).
- **Одобрения.** Вие избирате кои промени изискват одобрение, например промени на цени. Преглеждащият не може да е човекът, който е поискал промяната.
- **Роли.** Собственик, администратор, одобряващ, редактор и наблюдател, с възможност за ограничаване по местоположения за редакторите и наблюдателите. Членовете на екипа работят в приложението и не се добавят към файла, освен ако собственикът не им даде пряк достъп за редактиране.
- **Засичане на директни редакции.** Ако някой редактира таблицата директно, LightInventory засича промяната и я обработва според вашите правила: блокира я, докато собственик не я приеме или не възстанови предишното състояние, автоматично я записва в дневника или я изпраща за одобрение.

Има безплатен план Free за 1 потребител и 1 таблица. Team струва 2,99 € на потребител на месец при месечно плащане или 2,49 € при годишно плащане, без данъци. Подробностите са на страницата с [цените](/bg/ceni), а как се обработват данните и достъпът ви – на страницата за [сигурността](/bg/sigurnost).
