Премини към съдържанието
quickJO

Екстраполиране на дата в Excel с промяна на месеца и годината

Препоръчан отговор


Здравейте колеги,

Excel, не уточнена версия, защото се ползват различни за целта.

В дадена колона има дати (форматирани по надлежният ред), които са с различни дата, месец и година.
              Колона А

Ред 1     01.01.2010

Ред 2     02.05.2015

Ред 3     15.10.2017

 

От тези дати трябва да се вземе САМО датата, като се зададат нови стойности за месец и дата. Новите месец и дата ще са идентични за всички редове, да кажем 04.2017 и горният пример да се трансформира:

                  Колона А       Колона Б

Ред 1     01.01.2010 --> 01.04.2017

Ред 2     02.05.2015 --> 02.04.2017

Ред 3     15.10.2017 --> 15.04.2017

 

Възможно ли е това начинание да стане с формула? Без да се използва макрос...

 

Поздрави и лека и спокойна вечер на всички!

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Простичък Replace би трябвало да свърши работа - http://dox.bg/files/dw?a=aa03090153

И за да не зависиш после от старите клетки, можеш да копираш стойностите и да ползваш тях (надявам се знаеш как).

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 7 минути, killchain написа:

Простичък Replace би трябвало да свърши работа - http://dox.bg/files/dw?a=aa03090153

И за да не зависиш после от старите клетки, можеш да копираш стойностите и да ползваш тях (надявам се знаеш как).

Ахахахаххахаха, когато решението се окаже по-просто от колкото си мъдрил половин ден :D:D:D:D

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ама така годините си остават същите. Мисля, че това би трябвало да е:
=REPLACE(A1;6;7;"04.2017")
=REPLACE(A2;6;7;"04.2017")
...

Редактирано от ExaFlop (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 13 минути, ExaFlop написа:

Ама така годините си остават същите. Мисля, че това би трябвало да е:
=REPLACE(A1;6;7;"04.2017")
=REPLACE(A2;6;7;"04.2017")
...

Прав си, малко по диагонал четох, но идеята си остава същата.


  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Много благодаря на всички!!!

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 14 часа, quickJO написа:

От тези дати трябва да се вземе САМО датата, като се зададат нови стойности за месец и дата.

Като начало и само за протокола. Когато от една дата вземеш само ДАТАТА, реално взимаш всичко. В случай ти искаш от датата да вземеш само ДЕНЯТ, а да промениш месеца и годината!!!

Датата (календарната) се състои от ДЕН, МЕСЕЦ и ГОДИНА!!!

преди 14 часа, ExaFlop написа:

Ама така годините си остават същите. Мисля, че това би трябвало да е:
=REPLACE(A1;6;7;"04.2017")

Павка - това ще стане (и става), само ако датата е записана в неформатиран вид - "01.10.2013 г." като „прост“ текст.

Да не забравяме, че ... това, което за нас е "ден, месец, година", за електронната таблица е едно естествено число. Започвайки от 0 (нула) което е „30.12.1899 г“ и нараствайки за всеки следващ ден. Числото за днес, 20.04.2017 г е 42845. Виж какво пише в условието...

преди 14 часа, quickJO написа:

В дадена колона има дати (форматирани по надлежният ред), които са с различни дата, месец и година.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ами пише, че клетките в колона А са форматирани в date формат. A на практика операцията в колона B работи като операция с  низове. Но прави точно това, което иска @quickJO. :) 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Да, ама не точно. В момента го изпробвах и в LibreOffice, и в MSExcel (online).

Когато:

  • в клетка A1 е въведена стойност „42845“ (днес) и клетката е форматирана във формат  - , а в B1 - формулата „=REPLACE(A1;4;9;"04.2017")“
  • в клетка B1 резултата е... „42804.2017“ !!!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 8 минути, jhoro написа:

в клетка A1 е въведена стойност „42845“

Да, ама да! Значи некоректно се е отворил файлът. При мен си се отвори с формат date  и работи! И явно (виж по-горе) този режим е не само при мен. Бих казал, само при теб е с проблем.  Така, че търси в твоя талавизор.

Редактирано от ExaFlop (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 12 минути, ExaFlop написа:

Да, ама да! Значи некоректно се е отворил файлът. При мен си се отвори с формат date  и работи!

Това го казах само защото - когато в една клетка виждаш днешната дата - „20.04.2017“ ти не знаеш дали това е стринг или числото „42845“ форматирано с формат date. И в някой случай се получават... неочаквани резултати!!!

И нищо няма да ти подскаже, че нещо не е уред! А когато се използват формулите за работа с дети - =DAY(), =MONTH(), =YEAR(A1) и DATE() - при грешен формат на входните данни - веднага ще светне!

В този файл - http://forums.bgdev.org/index.php?act=Attach&type=post&id=188390 - има пример за „прибавяне/изваждане на години, месеци и дни (комбинирано)“. На стр. 4,  фиг. 12 (не мога да копирам само картинката)

Редактирано от jhoro (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 42 минути, ExaFlop написа:

Ами пише, че клетките в колона А са форматирани в date формат. A на практика операцията в колона B работи като операция с  низове. Но прави точно това, което иска @quickJO. :) 

Операциите с текст не винаги дават нужният резултат. Форматирането на дата МНОГО зависи от настройките на компютъра в момента (български, US English, и т.н.). Датата може да изглежда така "20.04.2017" и така "4.20.2017" и по какъвто начин някой реши да си я форматира.

преди 16 минути, jhoro написа:

Да, ама не точно. В момента го изпробвах и в LibreOffice, и в MSExcel (online).

Когато:

  • в клетка A1 е въведена стойност „42845“ (днес) и клетката е форматирана във формат  - , а в B1 - формулата „=REPLACE(A1;4;9;"04.2017")“
  • в клетка B1 резултата е... „42804.2017“ !!!

И аз получих същото. :)

За да направите правилно преобразуване използвайте функциите на Excel за работа с дати: Date(), Year(), Month(), Day(). Тогава формулата може да изглежда ето така:

=DATE(2014,4,DAY(A1))

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

(При мен разделителят на параметрите е запетайка, при някой друг Excel - точка и запетая. Това зависи ПАК от регионалните настройки)

Редактирано от ColdIce1234 (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 8 минути, ColdIce1234 написа:

Операциите с текст не винаги дават нужният резултат...

Писали сме едновременно.

И по-лошото - не само не дават каквото очакваме, ами и не подсказват - къде и каква е грешката!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 6 минути, jhoro написа:

Писали сме едновременно.

И по-лошото - не само не дават каквото очакваме, ами и не подсказват - къде и каква е грешката!

Вече съм си блъскал главата с този проблем - различно форматирани дати. Фуннкциите Year(), Month(), Day() винаги връщат тази част, която ти трябва, независимо как е форматирана да се покаже. Стига само в изходната клета да има тип "дата", а не "текст".

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 24 минути, ColdIce1234 написа:

Вече съм си блъскал главата с този проблем - различно форматирани дати. Фуннкциите Year(), Month(), Day() винаги връщат тази част, която ти трябва, независимо как е форматирана да се покаже. Стига само в изходната клета да има тип "дата", а не "текст".

Когато пък е текст, ще ти покаже грешка - "#VALUE!" - и ще ти светне, че нещо не е както трябва!

Като цяло - когато правите нещо - в случая таблица някаква - не забравяйте, че може друг или вие самите след време, да ползва(те) същото това нещо. Нещата трябва да са ГЛУПАКОУСТОЙЧИВИ и логични. Защото не всеки ще знае, какво мислите в момента.

Редактирано от jhoro (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

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