-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
aktív tag
Másik fórumon a kérdés az volt, hogy van-e olyan függvény amely megadja hogy egy listából mely számok hiányoznak.
pl. 1, 2, 4 esetén a 3-as hiányzik
Hogy hány szám hiányzik egy növekvő számsorból azt meg lehet kapni az alábbi képlettel
= (maximum érték - minimum érték) / lépésköz + 1 - számok darabszáma
A fenti esetben = (4-1) /1 + 1 - 3 = 1 db szám hiányzik.Ha csak 1 db hiányzik, akkor 2 HOL.VAN segít a megadni a hiányzó számot.
=HOL.VAN(HAMIS;SZÁM(HOL.VAN(SOR(INDIREKT("$A"&MIN(A:A)&":$A"&MAX(A:A)));A:A;0));0)+MIN(A:A)-1
Ha több hiányzik, akkor többet kell küzdenünk hogy egy cellában megjelenjenek a számok.
=SZÖVEGÖSSZEFŰZÉS(",";IGAZ;ÖSSZESÍT(15;6;SOR(INDIREKT("$A"&MIN(A:A)&":$A"&MAX(A:A)))/(1-SZÁM(HOL.VAN(SOR(INDIREKT("$A"&MIN(A:A)&":$A"&MAX(A:A)));A:A;0)));SOR(INDIREKT("$A1:$A"&MAX(A:A)-MIN(A:A)+1-DARAB(A:A)))))Mindegyik esetben a SOR(INDIREKT("$A"&MIN(A:A)&":$A"&MAX(A:A)) függvény előállítja a teljes számsort a kezdő és végszám között egyesével (ha más lépésköz kellene, akkor Excel365-ben a SORSZÁMLISTA tudna segíteni).
A belső HOL.VAN megnézi hogy az előbb létrehozott számok az A-oszlopban hol találhatóak. Amelyik hiányzik ott hibát ad vissza, amelyet a SZÁM függvény HAMIS értékre fog lefordítani.
A külső HOL.VAN megnézi hogy hanyadik elemre kaptunk HAMIS értéket. Ezt a pozíciót hozzáadva a kezdőszámhoz megkapjuk hogy melyik hiányzott.A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
KBaj
kezdő
Szia!
Köszönöm, hogy hozzászóltál és tanácsot adtál.
Észrevételedre: Valóban a kód a G8-ra hivatkozik, de az nem üres hanem értéke 9, ami ránézésre csalóka, mert a G8 és H8 Excel művelettel cellaegyesítve van, igazítása középre (piros háttérszínnel). Hivatkozása viszont marad az első cella címe.
Az utóiratodra: Nagyon sokat kísérletezek Excel-VBA-val. Sokszor változtatok ezt-azt. A Feltétel2 nevű tartományt a program első harmadában használom először a'Feltételek
megjegyzés sor után:Range("AF11:AJ11").Value =
... , igaz nem név szerint, hanem tartalom szerint. Nem tudom, hogy helyes-e. Nem függvényként futtatva a programot, lefut rendesen.
Amit eddig tudok: Az1004 Application-defined or object-defined error
akkor jön elő, ha olyan utasítást kell végrehajtania, ami egy értékadás valaminek egy munkalapfüggvényt tartalmazó cellából. Persze a munkalapfüggvény helyes. Autódidakta megérzésem ezen az úton kell elindulni a hibakeresésben.
Minden hozzászólást szívesen fogadok. Köszönöm az eddigieket.
Üdv. -
moma
őstag
Úristen köszönöm
Kipróbáltam és működik! Sok pepecseléstől mentesz meg ezzel. A pluszban beletett rész is hasznos lesz, pedig ezt nem is mondtam!
És nagyon inspiráló, hogy ezt így megcsináltad más számára. Engem is csak megerősít, hogy mennyire nagy dolog így eltávolítani mások elől az akadályokat.
Amúgy a képeden az ötös ac cellát nem sorszámozza valamiért. Nekem ahogy tesztelgettem mindent jól csinált.
we all deserve a bit of luck.
-
p5quser
tag
Üdv!
Köszi a választ!
Sajnos set-tel is ugyanaddig jut - az.Activate
-ig - majd 438.#46254Fferi50
Neked is köszi a választ! A tömbösítésnél viszont a textboxba beírt szöveget húzza be objektumnévnek. Feltéve ha így gondoltad;Dim tbtomb(8)
tbtomb(1) = ActiveSheet.TextBox1
tbtomb(2) = ActiveSheet.TextBox2
tbtomb(3) = ActiveSheet.TextBox3
tbtomb(4) = ActiveSheet.TextBox4
tbtomb(5) = ActiveSheet.TextBox5
tbtomb(6) = ActiveSheet.TextBox6
tbtomb(7) = ActiveSheet.TextBox7
tbtomb(8) = ActiveSheet.TextBox8
For Each cb In ActiveSheet.OLEObjects
If TypeName(cb.Object) = "CheckBox" And cb.Object.Value = True Then
cbi = Right(cb.Name, 1)
With tbtomb(cbi)
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Next cb
De már ott tartok, hogy nem érdekel a selection része, mivel a textboxot aktiválja és odaugrik, onnantól majd kitörlik a benne lévő szöveget. Csak elegánsabb lett volna úgy.
Mégegyszer köszönöm a válaszaitokat! -
Hege1234
addikt
tökéletes köszi, hogy elmagyaráztad!
egy olyanba akadtam még el hogy
az A1 cellából kiolvasott dátum elnevezze az adott lapotfunction onEdit2() {
var sheet = SpreadsheetApp.getActiveSheet();
var oldName = sheet.getName();
var newName = sheet.getRange(1,1).getValue();
if (newName.toString().length>0 && newName !== oldName) {
sheet.setName(newName);
}
}
ami végül is működik de erre nevezi el a lapot, ha nem szöveg a cella
Sun Mar 21 2021 03:00:00 GMT-0400 (keleti államokbeli nyári idő)
ez mitől lehet?az én tervem 2 cella volt A1 A2 (mert a vasárnapokon kívül minden más napra van egy sheet elvileg van erre is valami szűrő hogy a hét napból a vasárnapot ne mutassa...)
A1 cella: 2021.03.20
A2 cella:=WEEKDAY(A1)
így csak pár számot kellett volna mindig átírogatnomamire még nem jöttem rá hogy az itt látható (1, 1) - et hogyan kell értelmezni?
var newName = sheet.getRange(1,1).getValue();
ha beírtam az (1, 2 ) akkor kiírta ami a B1 -ben volt
milyen számokat kell beírni oda hogy A1,A2 cellát olvassa? -
maestro87
őstag
HTML lekérdezésben meg API használatában kellene segítség.
Külföldi rendelős oldalakról szeretném lekérdezni a termékek adatait.
Pl. Aliexpress-ről ha beszúrok egy linket, akkor töltse ki a hiányzó mezőket magától (termék neve, ára stb.).
A másik meg, hogy egyes oldalakhoz van API hozzáférés, és abból is az adatokat be kellene olvasni. De nem nagyon vágom és rendes tutorialt se találni ami Google Script-hez van. -
Hege1234
addikt
köszönöm szépen!
szép hosszú sor lett : )amit írtál a KG -ra az alapján átírtam UP-ra
=if(row()-1<=counta($D$3:$E$27);textjoin(" - ";true;$A$1;if(index(FILTER($D$3:$D$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1)="";E$2;D$2); text(index(FILTER($A$3:$A$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1);"HH:mm");index(FILTER($D$3:$E$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1));"")
ami nem sikerült az az hogy a "07:00" -át is kiírja
nem jöttem rá hogy mi miatt (ebben a sheet-ben próbálgatom)
valamint az, hogy folytatólagosan a 28. sorba működjön
(B28)próbáltam összetenni, hogy a kg és az up is egy oszlopba kerüljön de így csak az
1. találatot kaptam belőlük={if(row()-1<=counta($B$3:$C$27);textjoin(" - ";true;$A$1;if(index(FILTER($B$3:$B$27;len($B$3:$B$27)+len($C$3:$C$27));row()-1)="";C$2;B$2);
text(index(FILTER($A$3:$A$27;len($B$3:$B$27)+len($C$3:$C$27));row()-1);"HH:mm");index(FILTER($B$3:$C$27;len($B$3:$B$27)+len($C$3:$C$27));row()-1));"");
if(row()-1<=counta($D$3:$E$27);textjoin(" - ";true;$A$1;if(index(FILTER($D$3:$D$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1)="";E$2;D$2);
text(index(FILTER($A$3:$A$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1);"HH:mm");index(FILTER($D$3:$E$27;len($D$3:$D$27)+len($E$3:$E$27));row()-1));"")}
-
PistiSan
addikt
Nagyon szépen köszönöm a válaszod, viszont számomra ez nem megoldás, mivel a fentebb leírtak alapján, nálam már a forrás fájlban eleve rosszul mentődik az adat el, ezért a fent leírtak alapján kellett a mentést elvégeznem, hibás forrás adattal sajnos ez a módszer nem működik.
Viszont amiért nagyon örülök, hogy ezt leírtad, mert a táblázatot amit alapból másoltam egy excelbe, azt le tudom menteni a programból weblapként is, mentésnél UTF8-at választok, így a PQ-val erre a html fájlra hivatkozok, és a te általad ismertetett módszerrel alakítom át a pontokat vesszőre, a nyelvterület beállításával.
Összességében kicsit máshogy mint elsőre terveztem, de működik a dolog. -
PistiSan
addikt
Mindkét verzió eszembe jutott, az általad felsoroltakból.
Felsoroltam egy külön fájlban amit le kellett vonni, de függvényt nem tudtam írni hozzá, ami amúgy így hogy már leírtad, marha egyszerűen tűnik utólag.
Mivel összesen 1 névről van szó, ezért az első verziót használtam fel az általad írt megoldások közül!
Nagyon szépen köszönöm,úgy működik, ahogy elvártam tőle.Annyira ritkán kell ilyen egyéni függvény, hogy még soha nem néztem utána rendesen, esetleg ha tudsz hozzá ajánlani egy faék egyszerű dolgokat leíró leírást amit ajánlanál, szívesen elolvasnám.
Köszi!
-
Telda
addikt
Köszi!
Közben találtam rá egy makrót.Sub munkafuzetmasolas()
Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "munkalaplista"
Range("A1").Select
For i = 1 To Sheets.Count - 1
Sheets(i).Select
Range(Cells(1, 1), Cells.SpecialCells(xlCellTypeLastCell)).Select
Selection.Copy
Sheets("munkalaplista").Select
Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
lastRow = ActiveCell.Row
Cells(ActiveCell.Row, 1).Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next i
End Sub -
Delila_1
Topikgazda
Írtam én is egy makrót – sok magyarázattal –, ami létrehozza a tartalomjegyzék lapot, és az egyes lapokra a visszaugrás csatolást.
Sub Tartalomjegyzek()
'A makró egy tetszőleges nevű munkalapot szúr be a meglévők elé.
'Erre a munkalapra egy tartalomjegyzéket készít a többi munkalapot listázva,
'hivatkozást is elhelyezve, amik az egyes munkalapok egy megadott cellájára mutatnak.
'A lapokra vissza logikájú linket helyez el kérésre, egy megadott cellába.
Dim TartalomLapnev As String, VisszaSzovege As String, VisszaHelye
Dim aktiv As Integer, Vissza As Integer
'Megkérdezi a felhasználótól, mi legyen a tartalomjegyzék munkalapjának a neve
TartalomLapnev = InputBox("Mi legyen a tartalomjegyzék munkalapjának neve?", "Tartalomjegyzék munkalapjának neve")
'Megkérdezi, szeretnénk-e vissza gombot elhelyezni a munkalapokon?
Vissza = MsgBox("Legyen-e egy vissza logikájú link a munkalapokon?", 4, "Vissza logikájú link")
'Ha igen, kérdezze meg, mi legyen a szöveg? pl. 0171:«
'és hol legyen az egyes lapokon
If Vissza = 6 Then
VisszaHelye = InputBox("Hova kerüljön a vissza logikájú link a lapokon?" & vbLf & "Pl.: A1", "Vissza logikájú link helye")
VisszaSzovege = InputBox("Mi legyen a vissza logikájú link felirata?" & vbLf & "Pl. « (bal Alt+0171), vagy Vissza", "Vissza logikájú link felirata")
End If
'Szúrjon be egy új munkalapot a meglévők elé a legelső helyre.
ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
'Adja az új munkalapnak a felhasználó által megadott nevet
Worksheets(1).Name = TartalomLapnev
Range("B1") = TartalomLapnev
Range("B1").Font.Size = 14
'Menjen végig a munkalapokon ...
For aktiv = 2 To ActiveWorkbook.Sheets.Count
'Írjon sorszámot.
Worksheets(1).Cells(aktiv, 1).Value = aktiv - 1 'sorszám
'Adjon linket a lapokhoz
With Worksheets(1)
.Hyperlinks.Add Anchor:=.Cells(aktiv, 2), Address:="", _
SubAddress:="'" & Worksheets(aktiv).Name & "'!" & VisszaHelye, TextToDisplay:=Worksheets(aktiv).Name
End With
'Ha kértünk Vissza linket, hozza létre a vissza logikájú linket a megadott cellába
If Vissza = 6 Then
With Worksheets(aktiv) 'itt adjuk meg, hogy a Vissza link melyik cellára álljon az első lapon
.Hyperlinks.Add Anchor:=.Range(VisszaHelye), Address:="", _
SubAddress:="'" & TartalomLapnev & "'!B" & aktiv, TextToDisplay:=VisszaSzovege
.Range(VisszaHelye).Font.Bold = True
End With
End If
Next aktiv
End Sub
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
andreas49
senior tag
Köszi a választ, de nálam nem igen működik.
Microsoft365 van fenn HU nyelv. Nem találok megfelelő magyar függvényt hozzá. A linken lévő példák is angol függvények.
Ami még probléma, hogy a darabolt értékek egy sorban kellene lenni, nem függőleges bontásbanHONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
BigBadPlaYeR
senior tag
-
félisten
-
félisten
-
-
bLaCkDoGoNe
veterán
Köszönöm az iránymutatást, megpróbálkozom a dologgal.
"«Fuck does Cuno care?» The boy turns to you. (He doesn't care.)" [+] "The parasite makes nothing for itself. Its only tools are taxes and tithes meant to trick you into offering what it has not earned. In Rapture we keep what is ours." [+]
-
bLaCkDoGoNe
veterán
Megnéztem a fentieket, de elég nehézkesen haladtam vele, úgyhogy végül egy Python scriptet írtam a feladatra.
Köszönöm, hogy vetted a fáradtságot és segítettél![ Szerkesztve ]
"«Fuck does Cuno care?» The boy turns to you. (He doesn't care.)" [+] "The parasite makes nothing for itself. Its only tools are taxes and tithes meant to trick you into offering what it has not earned. In Rapture we keep what is ours." [+]
-
bozsozso
őstag
Szia,
Úgy látom nagyon otthon vagy ebben a PQ-ben. Még egy hasonló problémám lenne mint az előző ez is egy kis "automatikus" feltöltés lenne.
Eddig eljutottam:
Minden oszlop1 adat mellé oszlop hozzáadással megcsináltam ezt:
Oszlop1 Egyéni
1001927 1464832
1001927 1165245
1002246 1464832
1002246 1165245
1005867 1464832
1005867 1165245
1004732 1464832
1004732 1165245Viszont azt szeretném egy új oszlopban, hogy az egyéni oszlopban található azonos kódok esetén ugyanaz a szám kerüljön.
Valahogy így:
Oszlop1 Egyéni
1001927 1464832 40
1001927 1165245 30
1002246 1464832 40
1002246 1165245 30
1005867 1464832 40
1005867 1165245 30
1004732 1464832 40
1004732 1165245 30Az oszlop hozzáadásnál valahogy meg tudom határozni, hogy már ne többszörözze a sorokat?
Jelenleg egy fkeressel már excelben megoldom, de ha lenne valami hasonló módszer az nagyon jó lenne.
Előre is köszönöm.
Új hozzászólás Aktív témák
- A fociról könnyedén, egy baráti társaságban
- Microsoft Outlook topic
- Politika
- PlayStation 5
- Vírusirtó topic
- Robot fűnyírók
- Megérkezett Magyarországra a Samsung új OLED gaming monitora
- Magga: PLEX: multimédia az egész lakásban
- OLED TV topic
- Több újítással támad a Xiaomi Redmi 3s
- További aktív témák...
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- 10 Darab PC Játék (Bontatlanul!) Egyben 6990Ft.-ért Foxal!!!