Как да ми се попълват автоматично от график,  дати на работа - приложил съм снимка?

Тайните на Excel Excel VBA VBA за Excel

Здравейте, направил съм си график на ексел и искам от него автоматично да се попълват датите на полагане на дежурство на служителите, в отделен протокол. Например, на снимката - служителят Атанасов е работил на 1, 5, 7, 12,15, 20, 24,28. Коя функция да използвам, за да може автоматично в протокол да се попълват датите на работа. Благодаря Ви предварително :)

А за служителя Илиев трябва ли да се отбелязва, че от 3-18 е бил в отпуск (или каквото там означава "о")

Не, трябва само да се показват изброени дежурствата.

Някои насоки:

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

Например, ако инспекторът от ДС (Държавна Сигурност?) Атанасов е на ред №5 и дните му започват от колона Е. Съответно дните са на ред №4

То в помощната таблица за този ден формулата ще бъде:=IF(ISNUMBER(E5);E$4;"")

Копирате формулата до края на месеца и за всички инспектори. Обърнете внимание на долара в Е4

След това в колона отстрани на помощната таблица въвеждате ей такава формула:

=TRIM(SUBSTITUTE(CONCATENATE(E14;"; ";F14;"; ";G14;"; ";H14;"; ";I14;"; ";J14;"; ";K14;"; ";L14;"; ";M14;"; ";N14;"; ";O14;"; ";P14;"; ";Q14;"; ";R14;"; ";S14;"; ";T14;"; ";U14;"; ";V14;"; ";W14;"; ";X14;"; ";Y14;"; ";Z14;"; ";AA14;"; ";AB14;"; ";AC14;"; ";AD14;"; ";AE14;"; ";AF14;"; ";AG14;"; ";AH14);"; ;"; ""))

какво прави тя:

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

за Атанасов би се получило нещо такова:

01;празно;празно;празно;05;празно;07 … и т.н.

За да премахнем празните интервали, използваме SUBSTITUTE, която заменяме този стринг "; ;" с интервал (празно).

И накрая "опаковаме" SUBSTITUTE с TRIM, за да изчисти всички излишни празни интервали.

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

Със сигурност може да се оправи, но за съжаление не разполагам с време за това

При мен това не става, заради форматирането. Датите на графика са автоматични и при смяна на месеца се сменят сами, формула е и като се опитвам да използвам concatenate показва големи цифри 43648 и т.н. Опитах се да сменя форматирането, но и така не става.

Добре де, а формулата DAY за какво е?

Сменя датите на новото тримесечие автоматично. Това го оправих (колона по колона избрах да показва отделно число), но формулата CONCATENATE е до 30 отделни текста, а ако месеца е 31 дни... С това не можах да се справя.

CONCATENATE е до 255 отделни текста

Да, но при добавяне на 31 - поле ми изписва това:

Според мен причината е, че работите в xls файл, който е старият формат и съответно поддържа по-малко функционалности.

Направете едно Save As и запазете файла като xlsx или, ако има макроси като xlsm.

Тогава не би трябвало да има проблеми

И по принцип работате с xlsx формат

Напълно прав сте, стария формат беше. Направих формулата, както ми казахте, но между датите изчезнаха запетаите и на места започват със запетая, но и това много ме улеснява. Благодаря :)

=IF(OR(E18=24;E18=16);DAY($E$17)&", ";)&IF(OR(F18=24;F18=16);DAY($F$17)&", ";)&IF(OR(G18=24;G18=16);DAY($G$17)&", ";)&IF(OR(H18=24;H18=16);DAY($H$17)&", ";)&IF(OR(I18=24;I18=16);DAY($I$17)&", ";)& така нататък и работи перфектно на същата страница, без да дублирам sheet-а.


Вашият отговор

Запиши се в Аула

или
Вашият имейл е защитен при нас.