dynamiczny zakres
tworzymy dynamiczny zakres dla listy:
=OFFSET(S14;0;0;COUNTA($S$14:$S$50);1)
dodajemy listę (nazwę) do Data Validation
tworzymy dynamiczny zakres dla listy:
=OFFSET(S14;0;0;COUNTA($S$14:$S$50);1)
dodajemy listę (nazwę) do Data Validation
| function | link |
|---|---|
| DO NOT USE PIECHARTS | [link](https://www.youtube.com/watch?v=4S8ljn8Pawkhttps://www.youtube.com/watch?v=4S8ljn8Pawk |
| REGEX | https://www.youtube.com/watch?v=YFnXV2be9eg |
| LAMBDA | https://www.youtube.com/watch?v=Rm4y5UqauRw |
| TAKE | https://www.youtube.com/watch?v=z66-6WVZSFY |
| more functions | https://www.youtube.com/watch?v=VWcLM6_Q_00 |
| PYTHON | https://www.youtube.com/watch?v=FbBXtqtRnWU |
| NEW Checkboxes | https://www.youtube.com/watch?v=DNl9DzNwjv8 |
| important Settings | https://www.youtube.com/watch?v=jLHqGRpGOPk |
| GROUPBY & PIVOTBY | https://www.youtube.com/watch?v=mCJzhCxEQlM |
| "dot" trick | https://www.youtube.com/watch?v=5h4wRTbmsSw |
| XLOOKUP "x-ref" | https://www.youtube.com/watch?v=y0L-QzTkwcA |
=MAP
SCAN() usecase: DFC
=SCAN
=REDUCE
=LAMBDA
=TOCOL
=TOROW
=TEXTSPLIT
=TEXTBEFORE
=TEXTAFTER
=VSTACK
=HSTACK
=WRAPROWS
=TAKE
=DROP
=CHOOSECOLS
=CHOOSEROWS
=EXPAND
=IF(SUMIFS(C:C;A:A;A2;B:B;"kf4")=0;TRUE;FALSE)
C:C = values to check
B:B - keyfigure to match for value check
A:A - fp_code
A2 - top level col A reference
Function GetFullURL(rg As Range) As String
On Error Resume Next
If rg.Hyperlinks.Count > 0 Then
If rg.Hyperlinks(1).SubAddress <> "" Then
GetFullURL = rg.Hyperlinks(1).Address & "#" & rg.Hyperlinks(1).SubAddress
Else
GetFullURL = rg.Hyperlinks(1).Address
End If
Else
GetFullURL = ""
End If
End Function
Sub extractURLs()
With ActiveSheet
For r = 2 To 20
.Cells(r, 7).Value = GetFullURL(.Cells(r, 3))
Next r
End With
End Sub
=DATEVALUE(LEFT(A1;4) & " " & MID(A1;5;3) & " " & MID(A1;8;LEN(A1)-7))
=LET(
period;OFFSET(INDIRECT(ADDRESS(ROW();COLUMN()));1;0);
DATE(
LEFT(period;4);
MONTH(1&MID(period;5;3));
MID(period;8;2)
))
data range: K:BV
target cell: K14
=LET(
ss; K13;
ofs; K10-K9;
cum; K10:$BJ$10 - ofs;
wf; K9:$BJ$9;
n; MATCH(1;(cum>=ss)*1;0);
prev; IF(n=1; 0; INDEX(cum;1;n-1));
rem; ss - prev;
wd; INDEX(wf;1;n);
part; IF(wd=0; 7; rem/wd*7);
IF(ISNUMBER(n); (n-1)*7 + part; COLUMNS(wf)*7)
)
| Step | Logic |
|---|---|
| ofs = K10-K9 | Strips prior cumulative so cum is always "from this week forward" |
| cum | Adjusted forward-looking cumulative demand |
| n = MATCH(...) | Finds first week where cumulative ≥ safety stock |
| (n-1)*7 | Full covered weeks → days |
| rem/wd*7 | Interpolates remaining stock into partial-week days |
| COLUMNS(wf)*7 | Fallback if stock covers the entire horizon |