Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Pareri Kadjar sau alternative

Slovacia / Kosice

Spatiu stocare aproape plin

Recomandare aer conditionat 9000 ...
 Cum v-ati apucat de editare foto?

Problema unezeala grinda de lemn ...

Intrebare hdmi laptop lenovo

Fezabilitate - Adaugare microinve...
 Hard disk extern SSD, A92

Parere cartier Uverturii/Virtutii...

inmatriculare autoturism reprezen...

2 aere conditionate pe un singur ...
 Intarzietor de priza zahar

Oprire update Asus ZenFone 10

Concediu Canada - Gestiunea banil...

Folii faruri - plastic sau sticla...
 

Crearea unei formule Excel cu diverși ani

- - - - -
  • Please log in to reply
14 replies to this topic

#1
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Bună ziua,

Caut să listez pe un rând (coloană) printr‑o formulă niște ani (sezoane), în formatul An/An+1 (de pildă, 2013/2014 sau preferabil 2013/14).
Ar fi soluția de a scrie direct anii, însă ia o sumedenie de timp să le adaug bara și următoarele 2 cifre din anul următor la fiecare.

Menționez că în listă sunt și elemente care au doar un an, iar versiunea folosită este Excel 2021.

Cu stimă,
ssss

Edited by ssss, 16 June 2024 - 11:59.


#2
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,783
  • Înscris: 06.01.2007
Adica, pe o coloana ai 2012 si vrei sa inlocuiewsti continutul cu 2012/13 ?

#3
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Un mic exemplu:

2010/11
2011/12
2012/13
2013/14
2015
2016
2017/18
2018/19


#4
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,783
  • Înscris: 06.01.2007
pentru a transforma ce ai in A1 sub forma 2012, in 2012/13 foloseste formula
=A1&"/"&TEXT(A1+1-TRUNC((A1+1)/100)*100,"00")
Ca sa intelegi despre ce-i vorba, e o concatenare intre:
An: 2012
caracterul /
An+1, din care se sterg primele doua cifre: poti sterge ciffrele folosind aritmetica, sau functii pe text. Eu am folosit aritmetic A1+1-TRUNC((A1+1)/100)*100
Pentru ca sa nu afiseze 2 in loc de 02 (pentru 2001/02 de exemplu), am schimbat formatul de afisare folosind functia TEXT( blabla, "00")

Se poate face mai usor folosind functii pe text, dar merge si asa.

#5
Pafarist

Pafarist

    Junior Member

  • Grup: Members
  • Posts: 209
  • Înscris: 01.06.2009
In coloana A, din A1, scrii anii, fără secol.
Pentru anii care trebuie să fie singuri, fără "/", adaugi un caracter nenumeric la sfarsit (ex: + sau *)

Exemplu:
8
9+
10
11*
12
13+

Apoi în B1 scrii formula:
=CONCAT("20",IF(ISNUMBER(A5),CONCAT(TEXT(A5,"00"),"/",TEXT(A5+1,"00")),TEXT(VALUE(LEFT(A5,LEN(A5)-1)),"00")))
și o copiezi la toate celulele relevante din B

Merge doar pentru secoul 21.
Pentru alt secol trebuie să schimbi „20”-ul din formulă.

Edited by Pafarist, 16 June 2024 - 12:29.


#6
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006

View Postmaccip, on 16 iunie 2024 - 12:23, said:

pentru a transforma ce ai in A1 sub forma 2012, in 2012/13 foloseste formula
=A1&"/"&TEXT(A1+1-TRUNC((A1+1)/100)*100,"00")
[…]
Nu merge, din păcate
Attached File  Screenshot 2024-06-16.png   26.67K   28 downloads

Nici cea a lui Pafarist nu merge, aceeași eroare o dă.

Edited by ssss, 16 June 2024 - 12:33.


#7
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,783
  • Înscris: 06.01.2007
La mine merge
Poate ai setat excelul sa fie cu ; in loc de , la separarea parametrilor functiilor.
Attached File  Screenshot 2024-06-16 133205.jpg   28.08K   10 downloads

Pune si tu o formula care face orice si-ti merge sa vedem poate ai setat ceva la excel diferit.
De exemplu baga in B1 formula
=TRUNC(A1)
Daca nici asta nu-ti merge, atunci ai formatat ceva aiurea sau niste setari regionale sau ceva ce tine de excelul tau.
Daca merge, atunci schimba cu
=TRUNC(A1, 1) si vezi ce face.

#8
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Aparent da, virgula era buba. Voi rescrie cu ; fiindcă așa am setat.

LATER: Se pare că aceste formule impun ca niște valori să fie prestabilite în alte celule. Am încercat să pun direct anii în locul celulei, iar când multiplicam, se repetau. Am pus și cu două.

Edited by ssss, 16 June 2024 - 13:03.


#9
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Cât despre @Pafarist, a mers până la urmă cu înlocuirea virgulelor cu ; dar valorile sunt de 4 cifre în ambele părți, plus că se impune și acolo să se prestabilească anii într‑o altă coloană.

Există cumva o soluție care să nu ceară să mai pun niște ani în altă parte?
Mulțumesc frumos de răspunsuri.


#10
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,783
  • Înscris: 06.01.2007
Pune un printscreen cu fizionomia documentului sa vad exactr ce vrei ca nu ma prind.

#11
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Aici. Deși pot face Hide, vreau totuși să nu dublez anii
Attached File  Screenshot 2024-06-16 144219 - Copy.png   7.68K   11 downloads

Edited by ssss, 16 June 2024 - 13:43.


#12
Leo2006

Leo2006

    Guru Member

  • Grup: Senior Members
  • Posts: 11,405
  • Înscris: 30.08.2006
Nu se poate scrie un algoritm daca nu exista un sablon definit.
Mai bine copiezi valorile din coloana 1 in coloana 2 si dupa aceia completezi unde e cazul si cu sezonul urmator.
Poti defini un sablon pe coloana 1 cum a descris @Pafarist. Eventual pui in prima coloana numarul de sezoane, 2 sau 1 si dupa aceia e mai simplu.

Edited by Leo2006, 16 June 2024 - 14:06.


#13
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Am reușit până la urmă; trebuia să copiez rândul, să lipesc doar cu valorile și apoi să șterg coloana cu anii (redundantă).
Mulțumiri cordiale;)


#14
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,783
  • Înscris: 06.01.2007
Daca ai ambele formate intr-o coloana, poti face asa
=IF(ISNUMBER(A1),A1&"/"&TEXT(A1+1-TRUNC((A1+1)/100)*100,"00"),A1)
ISNUMBER testeaza daca ai doar anul (adica daca e doar un numar acolo)
Daca ai doar anul, ii pune / si anul urmator (formula cu rosu)
Daca nu ai doar anul, se pastreaza textul original (cu verde in formula de mai sus)

Daca ai un excel mai nou, se poate face cu REGEX(regular expressions) insa eu nu am asa ceva pe laptopul de acasa.
Cu REGEX e modul corect de a face tipul asta de probleme prin care :
- recunosti un anumit pattern din mai multe posibile (gen 1944, 1944/45, 2.feb.1944, 02.02.44, 02.02.1944, etc)
- aplici o anumita formatare functie de patternul recunoscut

sau..
- recunosti un anume pattern (ca mai sus) din care poti extrage o anumita informatie (de exemplu anul la tine, din doua cifre, ultimile doua ale anului), 44 in exdemplul de mai sus
- cu acea informatie construiesti un anume format de afisare folosind functii aritmetice si functii text. Cum ar fi 1944/45

Notepad++ are REGEX. Cand aveam patternuri complicate in excel, eu le mutam in notepad++, faceam inlocuirile necesare si reveneam in excel. Acum nu mai e nevoie, ca au bagat si in excel functii REGEX. Au bagat si python, dar doar in ultimile versiuni.
Cu excelul traditional, te cam chinui ca ies formule lungi. Se poate facce, dar ies formulele lungi, cu multi de IF() si nu se mai intelege nimic.

#15
ssss

ssss

    Active Member

  • Grup: Members
  • Posts: 1,509
  • Înscris: 04.02.2006
Până la urmă am găsit soluția de compromis.
Pe o foaie separată calculez anii și sezoanele, iar pe baza ultimei formule distincția anilor între sezoanele de tip A/A+1 și cele de tip A am făcut‑o prin adăugarea lui Zero Width Non‑Joiner (U+200C).
Menționez că valorile sunt copiate pe foaia principală.
Mulțumesc încă odată!

Edited by ssss, 17 June 2024 - 04:29.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate