Forum Discussion
vaphaet
May 04, 2023Copper Contributor
Named table reference not working after expanding the named table with more rows
I have multiple named tables across multiple sheets. When I created the below function, it worked as intended. Then I inserted extra row to the referenced (Havi_Bér) named table. It visually show...
- May 08, 2023
Have no idea why, but you use binary search in XMATCH() /4th parameter/ which assumes sorting of data source. Try to sort Havi_Bér[Munkavállaló] in ascending order and you have totally different result.
I'd use default search mode like
=CONCATENATE( IF( INDEX( Havi_Bér[Szabadság], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ) > 0, INDEX( Havi_Bér[Szabadság], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ), "" ), IF( INDEX( Havi_Bér[Szabadság], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ) > 0, " nap, ", "" ), IF( INDEX( Havi_Bér[Apanap], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ) > 0, INDEX( Havi_Bér[Apanap], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ), "" ), IF( INDEX( Havi_Bér[Apanap], XMATCH($C$1, Havi_Bér[Kezdete]) * XMATCH([@Név], Havi_Bér[Munkavállaló]) ) > 0, " apanap", "" ) )The same for Fizetendő, like
=XLOOKUP( [@Munkavállaló], Munkavállalók_Táblája[Név], Munkavállalók_Táblája[Alapbér], "Munkavállaló neve nem található a Munkavállalók_Táblája tábla Név oszlopában" ) * ( 1 - ( [@[Fizetés nélküli nap]] + [@Apanap] * 0.6 + [@[Beteg szabadság]] * 0.3 ) / [@[Tárgyhavi Munkanap]] ) + [@Túlóra] + [@[Utazási Támogatás]] - [@[Egyéb csökkentő]] + [@[Egyéb növelő]]Not sure about other formulae, but you have to be careful with binary search.
SergeiBaklan
May 08, 2023Diamond Contributor
Have no idea why, but you use binary search in XMATCH() /4th parameter/ which assumes sorting of data source. Try to sort Havi_Bér[Munkavállaló] in ascending order and you have totally different result.
I'd use default search mode like
=CONCATENATE(
IF(
INDEX(
Havi_Bér[Szabadság],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
) > 0,
INDEX(
Havi_Bér[Szabadság],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
),
""
),
IF(
INDEX(
Havi_Bér[Szabadság],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
) > 0,
" nap, ",
""
),
IF(
INDEX(
Havi_Bér[Apanap],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
) > 0,
INDEX(
Havi_Bér[Apanap],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
),
""
),
IF(
INDEX(
Havi_Bér[Apanap],
XMATCH($C$1, Havi_Bér[Kezdete]) *
XMATCH([@Név], Havi_Bér[Munkavállaló])
) > 0,
" apanap",
""
)
)
The same for Fizetendő, like
=XLOOKUP(
[@Munkavállaló],
Munkavállalók_Táblája[Név],
Munkavállalók_Táblája[Alapbér],
"Munkavállaló neve nem található a Munkavállalók_Táblája tábla Név oszlopában"
) *
(
1 -
(
[@[Fizetés nélküli nap]] + [@Apanap] * 0.6 +
[@[Beteg szabadság]] * 0.3
) / [@[Tárgyhavi Munkanap]]
) + [@Túlóra] + [@[Utazási Támogatás]] - [@[Egyéb csökkentő]] +
[@[Egyéb növelő]]
Not sure about other formulae, but you have to be careful with binary search.
vaphaet
May 18, 2023Copper Contributor
Thanks for the advice! I have forgotten my mantra: "Excel is not a database". When I set up the function, the referenced range was in alphabetical order... and then it got mixed up...
Lesson learned.
Lesson learned.
- SergeiBaklanMay 22, 2023Diamond Contributor
vaphaet , glad to help