Excel: Žodžio radimas skaičių masyve

Ms-excel

Turėjau tokią situaciją: devyniuose excel’io sheet’uose yra formos iš kurių pildoma viena ir viename sheet’e yra priedas, kuris pildomas visą laiką, pildant bet kurią forma iš tų devynių.  Reikėjo padaryti taip, kad pildant bet kurią formą, sutampantys duomenys persikeltų ir į priedą. Tai pvz. užsakovo pavadinimas visada turėtų persikelti iš vienos iš tų devynių į priedą.

Bandžiau naudoti funkciją „Consolidate“ arba visuose sheet’uose reikiamas celes sužymėti tarp jų „&“ įrašant. Rezultatą šitie du būdai duoda tą patį. Ir abiem atvejais, jeigu užsakovas nepasirinktas, tai kaip rezultatą gaudavau „0“. Todėl galutiniame rezultate gaudavosi „000000000“, o jeigu kažkuriame viename pasirenki užsakovą, tai prie jo pavadinimo atsirasdavo ir 8 nuliai iš kitų sheet’ų.

Šitą reikalą sugalvojau išspręsti šitaip: pasidariau pagalbinį sheet’ą, kuriame atkėliau kiekvieno „užsakovo“ įvedimo laukelį iš kiekvieno sheet’o. Gavosi stulpelis, kuriame 8 nuliai ir kažkuriame viename tekstas. Tuomet iškilo kitas klausimas, kaip iš to stulpelio „ištraukti“ tekstą.

Pirmiausia ėjau lengviausiu keliu – ieškojau tinkamos formulės. Artimiausia į tai ko man reikia buvo MINA – ji suranda ir išveda mažiausią reikšmę. Tekstą, ši funkcija, laiko „0“, tai kitus nulius paverčiau vienetu ir tikėjausi, kad viskas bus gerai, tačiau funkcija rezultate duoda ne tekstą, o „0“, taigi netiko ir ji. Todėl mečiau paieškas ir pagalvojęs pats parašiau tokią eilutę, kuri davė norimą rezultatą:

=IF(B4>0;B4;IF(B5>0;B5;IF(B6>0;B6;IF(B7>0;B7;IF(B8>0;B8;IF(B9>0;B9;IF(B10>0;B10;IF(B11>0;B11;IF(B12>0;B12;0)))))))))

FiksavimasEsmė čia tokia: pirmiausia patikriname celę B4, jei reikšmė didesnė už 0 ją, išvedame į D3, jei ne, tokiu pat principu tikrinam toliau B5, ir t.t.

Tai vat, kuo toliau tuo įdomiau man darosi dirbti su tuo Exceliu, gera programa.