Jump to content
GSForum - Segélyvonal

MS Excel - Kérdések és válaszok


Andrewww

Recommended Posts

arpsoft

Az E oszlopba raksz egy darabteli függvényt, ami megszámolja, hogy a leszűrt eredményből hány darab van a B-ben. Ennyivel tovább lépteted a következő keresésedél a pozíciót és kész is.

Link to comment
Share on other sites

firewolf

Üdv!

 

Árajánlatadáshoz szerkesztek táblázatot, amiben van egy oszlop számokkal (milyen meglepő :)), amiket szeretnék 100-ra kerekíteni. Namost szépen megnéztem, hogy milyen függvény kell ehhez, mégpedig a KEREK.FEL. A számhoz kijelölöm a cellát, a hány_számjegyhez meg beírok -2 -t, ahogyan azt a súgó is súgja nekem. Na ezek után, amikor rányomok a KÉSZ feliratú gombra, akkor az adott cellába beír nekem egy szép kerek NULLÁT. Namármost, ha az adott dolgot tényleg ennyiért adom, akkor nem kell sokáig kerekítgetnem, mert felkopik az állam... Mi az, amit rosszul csinálok?

Link to comment
Share on other sites

ldrfrm

Nálam működik: =KEREK.FEL(12386;-2)

Szerintem valamit a cellaformázásnál állítottál el. Nekem általánosan és pénznemmel is működik.

Link to comment
Share on other sites

Fujitsu

A KEREK.FEL nem kerekít, hanem felkerekít egy számot eggyel nagyobbra a megadott helyiértéken (ha az éppen nem egy kerek érték azon). A KEREK.FEL(101; -2) eredménye 200 lesz, nem pedig 100, amiről sima százasra kerekítésnél beszélnénk.

 

Szóval első körben azt kéne kitalálni, hogy mit is akarsz csinálni. A KEREK.FEL mindenesetre -2-es második paraméterrel sohasem fog nullát adni nullától különböző számokra, szóval itt valami a bemenő adatokkal nem stimmel (vagy azok formátumával, ahogy az előttem szóló rámutatott).

Link to comment
Share on other sites

firewolf

Tudom, hogy mit csinál a függvény. Én csináltam rosszul, mert arra a cellára akartam érvényesíteni a kerekítést, ahol az eredeti érték volt és erre adott nullát.

Link to comment
Share on other sites

  • 4 months later...
csibehad

Szervusztok!

Ma reggelre összekeveredtek a táblázatomban a sorok. Konkrétan: az "A" oszlop soraihoz tartozó cellák keveredtek a "WW" oszlopban. És kb. 1000 sorról van szó :(

Hogyan tudnám ezt visszaállítani?

Vagy esetleg valahol találok-e előzményt, amit visszaállíthatnék?

Bocsánat, ha a szakembereknek gyermekded a fogalmazás, de én egy autodidakta nagyi vagyok csupán :)

Link to comment
Share on other sites

Temporary

Több megoldás is van, attól függően milyen office verziót használsz.

 

A legfontosabb, hogy először készíts egy másolatot a fájlról, és azon kísérletezz!

 

Több információ, alaposabb leírás kellene az adatokról. Még jobb lenne, ha képeket is tudnál mutatni a táblázatról.

Link to comment
Share on other sites

  • 2 months later...
Erian

Üdv!

 

Exel-ben kéne az adott mezőben lévő IP címet pl: 123.456.789 eggyel nővelni az alatta lévő mezőbe.

 

Mivel nem számként kezeli így hogyan oldajam meg?

 

Nagyon szépen köszönöm a válaszotok!

Link to comment
Share on other sites

TheSaurida

Szerintem növeli. (Annyira, hogy néha idegbajt kapok, amikor beírok egy házszámot (Fő u. 82, plö), és másolva a cellát, növekszik a házszám is.)

Egyébként ki is próbáltam, hogy ne írjak hülyeséget, és ha húzom lefelé a cella fogantyúját, növeli az IP utolsó tagját. Arra azért ügyelni kell, hogy a 255-öt ne lépd túl. ;)

Link to comment
Share on other sites

Erian

S amennyiben nem egymás alá kell húznom? hanem egy X oszlop Y sorába kell megjelennie?

 

Amúgy köszönöm az előző hozzászolást! :)

Link to comment
Share on other sites

TheSaurida

Ha ipari mennyiségben kell ilyesmit csinálnod (vagy valamit automatizálni), akkor már szerintem szét kell bontanod az eredeti IP-t, a BAL() és JOBB() függvényekkel, az utolsó három karaktert konvertálod számmá*, növeled eggyel, és összefűzöd az első 12-vel (3*3 szám ugye, meg három pont).

 

*Nem is kell konvertálni, nálam így is működik: =ÖSSZEFŰZ(BAL(A2;12);JOBB(A2;3)+1)

 

Ha pontosabban látnám a problémádat (mit, hova, miért), pontosabb választ tudnék adni. ;)

Link to comment
Share on other sites

SkyBird

Azért ez nem ilyen egyszerű. Az rendben van, hogy lehúzva növeli az utolsó számjegyet. Persze nyilván 255 után is ameddig húzzuk.

Azonban a pont az elválasztó és nem, vagy nem feltétlen 3 karakterenként vannak a számok, hanem lehet 1 vagy 2 karakter is. Még a HOSSZ se biztos, hogy elég, vagy azzal is filózni kell.

A legjobb volna oszloponként elkülöníteni eleve, és utána ezt egyesíteni.

Vagy a másik, hogy nem 3 karakterenként szétbontani, hanem a pontra rákeresni, hogy hol van (SZÖVEG.KERES). Jó bonyolult képleteket ki lehet hozni BAL, JOBB, KÖZÉP függvényekkel.

A másik meg, hogy összerakva a vezető nullákat ne írja ki.

Talán jobb vagy egyszerűbb eleve a 4 oszlopos megoldásból kiindulni.

Link to comment
Share on other sites

TheSaurida

Ezért írtam, hogy jó lenne pontosítani. Ha nekem lenne efféle feladatom, biztos négy oszlopba tenném a négy bájtot. A vezető nullákkal nincs gond szerintem, a rendszer elbírja. A pontra keresés is jogos (jár a pont...).

Link to comment
Share on other sites

SkyBird

Valóban nincs gond a vezető nullákkal, főképp ha tényleg 4 oszlopban számként kezeljük az adatokat.

Akkor kellene rá megoldás, ha 3 karakteresen szövegként kezelnénk a bájtokat, és az egybegyúráshoz.

Link to comment
Share on other sites

  • 8 months later...
Hedina

Sziasztok!

 

Excelben lenne szükségem segítségre. A probléma az, hogy .txt-t importálok Excelbe és a benne lévő dátumok különböző formátumban importálódnak be. Sima cellaformázásra nem reagál, nem egységesíthető, kimutatás készítésekor nem foglalható csoportba, szűrni nem lehet napokra, csak egyesével. A .txt megnyitásakor kijelöltem azt az oszlopot, amiben a dátum van és text formára állítottam, de így sem azonos az egy oszlopban lévő dátumok formátuma. Maga a txt egy program exportját tartalmazza, tehát egységesnek kellene lennie.

Tapasztalt már valaki ilyet, illetve az lenne a legjobb, ha valaki megoldást is tudna erre a jelenségre.

 

Köszönöm, Edina

 

Kétféle formátum: éééé.hh.nn óó:pp:mm és éééé-hh-nn óó:pp:mm.mmm

Edited by Hedina
Link to comment
Share on other sites

TheSaurida

Ha átnevezed a .txt-t .csv-re és úgy nyitod meg? Mondjuk a formátumnak akkor is egységesnek kéne lennie.

Esetleg még azt tudod csinálni, hogy az oszlopban a kötőjeleket pontokra cseréled, ezzel az egyik probléma kilőve. A másikra meg az, hogy egy új oszlopban a =Bal() függvénnyel levágod az utolsó 4 karaktert (illetve meghagyod a többit), aztán már meg kéne tudnod formázni dátumnak.

Most mennem kell, otthon még majd ránézek, mit lehetne csinálni.

Ha nagyon komplikált, és az adatok nem titkosak, küldj egy fájldarabot, abból többet lehet kiokoskodni.

Link to comment
Share on other sites

payskin

Sok rosszat el tudok képzelni az Excelről, de azt nem, hogy ha egy oszlopban egységes formátumú, szöveges dátumok vannak, azt helyenként eltérő módon, rosszul kezelje. Nem nézhetnénk bele abba a TXT fájlba? Vagy legalább egy kis részébe?

Link to comment
Share on other sites

TheSaurida

Az mondjuk előfordulhat, hogy ha a program két különböző modulja tolja az adatokat ugyanabba a fájlba (mert miért ne...), akkor nincsenek közös nevezőn a formátumot illetően.

Link to comment
Share on other sites

  • 1 month later...
tr0422

Sziasztok!

Segítséget szeretnék kérni abban, hogy hogyan lehet azt a feltételt megírni, hogy ha egy bizonyos üres cellába érték kerül beírásra, akkor ehhez kapcsolódóan egy másik cella kitöltése kötelező legyen és addig ne lehessen bezárni a táblát, amíg üres a kötelezően kitöltendő cella.

Egy példa: a táblába ha beírásra kerül a dolgozó neve oszlopba egy név, de üresen hagyják a kötelezően kitöltendő munkavégzés helye cellát és beakarják zárni a táblát, akkor feljön egy üzenet, hogy a cella kitöltése kötelező.

Azt szeretném elérni, hogy ha több dolgozó nevét is beírjuk ugyanabba a táblába, akkor mindegyik személyhez kötelező legyen kitölteni a munkavégzés helye cellát, ne maradjon üresen.

Viszont a tábla legyen alapvetően üresen lementhető, és ha más megnyitja, akkor üres legyen. Már próbálkoztam feltétel megírásával és ez lett belőle, de így még egyenlőre én sem tudom lementeni üresen:

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Cells(12, 14).Value = "" Then

MsgBox ("Kilépés elött az N12 cellát ki kell tölteni.")

Cancel = True

End If

End Sub

 

Előre is köszönöm a segítséget!

Link to comment
Share on other sites

[OP]Destroy-man

Az Excel felejtős erre a célra. Használj helyett SQL-t, pl . MSSQL-et, vagy ha már office, akkor Access.

Link to comment
Share on other sites

arpsoft

Te csak azt ellenőrzöd, hogy a cella ki van-e töltve, függetlenül attól, hogy ki kell-e tölteni.

Tételezzük fel, hogy az 1-10 sorokban ha az M oszlopban van adat, akkor az N-ben is kell lennie.

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 dim bCancel as Boolean  
 dim cMessage as String
 bCancel=False
 cMessage=""
 ' ciklus az első 10 sorra
 for iSor=1 to 10
   ' ha egy cellába még nem írtak semmit, akkor az értéke NULL, amit külön vizsgálni kell
   if ISNULL(Cells(iSor,13).Value)=False and Cells(iSor,13).Value<>"" then
     ' ebben a cellában van valami, ezért a mellette lévőben is kell lennie értéknek
     if ISNULL(Cells(iSor,14).Value)=True or Cells(iSor,14).Value="" then
       ' de ebben nincs semmi, ezért nem lehet menteni
       bCancel=True
       ' a hibaüzenethez hozzárakjuk a hibás sorunkat meg egy új sort, hogy ne egybe írjuk az egészet
       cMessage=cMessage & "Ha az M" & iSor & " cella ki van töltve, akkor az N" & iSor & " cella nem lehet üres!" & vbCrLf
     end if
   End If
 Next iSor
 ' ha volt hiba
 If bCancel Then
   ' akkor üzenünk és nem zárjuk be a munkafüzetet 
   MsgBox (cMessage)
   Cancel = True
 End If
End Sub

Nem próbáltam ki, de elvileg működnie kell.

Link to comment
Share on other sites

tr0422

Nagyon köszönöm arpsoft! Ez elvileg és gyakorlatilag is működik! :-)

Link to comment
Share on other sites

  • 3 weeks later...
TheSaurida

Kaptam a minap egy érdekes kérdést: van egy oszlop, amiben dátumok vannak (sok). Egy részük csak úgy be van írva, ezek jók. Más részüket viszont egy képlet számolta ki, ami nem jó. A kérdés az, hogy hogy lehetne kijelölni azokat a cellákat, amikben képlet van (vagy azokat, amikben nem).

(Ez amúgy globálisan is érdekes lehet.)

Hirtelen azt találtam ki (O2007-ről lévén szó), hogy a Képletek fülön a Képletek gombbal kapcsolgassák át a megjelenítést, akkor kiugrik a különbség, de ez azért mégse profi megoldás. Jellemző módon a szöveges függvények nem találják meg a = jelet, se a feltételes formázás.

Link to comment
Share on other sites

arpsoft

A KÉPLETSZÖVEG függvény a képletet adja vissza szövegként, ha a hivatkozott cellában van képlet,különben #HIÁNYZIK a visszatérési érték.

A KÉPLET függvény pedig igazat, ha a hivatkozott cellában van képlet.

 

Sajnos ezek csak a 2013-as verziótól fölfelé érhetőek el.

 

Ennél régebbi Excelben ezt tudod használni:

 

Sub IdentifyFormulaCells()
'Apply yellow highlight to all formula cells.
Dim ws As Worksheet
Dim rng As Range
Set ws = ActiveSheet
For Each rng In ws.Cells.SpecialCells(xlCellTypeFormulas)
rng.Interior.ColorIndex = 36
Next rng
End Sub

Forrás: http://www.techrepublic.com/blog/microsoft-office/identify-which-cells-in-excel-are-formula-cells/

Link to comment
Share on other sites

TheSaurida

Köszi. Tudtam, hogy már láttam valahol a KÉPLET függvényt, és eléggé zavart, hogy se a 2007-ben, se a 2010-ben nem találom. Már csak azt nem tudom, hol volt közöm O2013-hoz vagy újabbhoz. :)

A scriptet majd kipróbálom.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...