A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data
Hello
Based on the formula you shared:
=FILTER('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$F$2065,
(BYROW(
'[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065,
LAMBDA(r,SUM(r)>0))),"N")
My understanding is that the formula currently:
- Returns data from columns E:F.
- Uses BYROW + LAMBDA to evaluate each row based on the value in column E.
- Only keeps rows where the value (or row total) is greater than 0.
- Returns "N" if no matching records are found.
Regarding the additional enhancements you would like to add:
1/ Remove the "-" value from the source table
This requirement is not completely clear to me yet because the meaning of "-" could vary:
1.1> If the "-" in your source data is a text value and you would like to exclude those rows, you may be able to extend your existing FILTER criteria as follows:
-
=SORT(FILTER('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$F$2065,(BYROW('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065,LAMBDA(r,SUM(r)>0)))*('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065<>"-"),"N"),1,-1) - The additional portion is:
*('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2*65<>"-")which excludes rows where column E contains the text value "-".
1.2> If "-" actually represents negative numbers and you want to exclude them, the condition could instead be:
=FILTER('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$F$2065,(BYROW('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065,LAMBDA(r,SUM(r)>0)))*('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065>=0),"N")
Added portion:
*('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065>=0)
Could you clarify which of the above scenarios matches your requirement?
2/ Multiply values by 120
If you want to multiply all values returned by the FILTER formula by 120, you can add: *120
For example:
=FILTER('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$F$2065,(BYROW('[Fatigue Assesment_as per 17949_Welded Joints.xlsm]S1'!$E$1466:$E$2065,LAMBDA(r,SUM(r)>0))),"N")*120
If you only want to multiply a specific column (for example, column E) while leaving the other returned column unchanged, the formula would need to be adjusted so that the multiplication applies only to that target column.
3/ Sort from largest to smallest
This can be done by wrapping the filtered output with SORT().
For example, if you would like to sort by the first column of the filtered result in descending order:
=SORT(FILTER('[Fat*gue Assesment_as per 17949_Weld*d Joints.xlsm]S1'!$E$1466*$F$2065,(BYROW('[Fatigue Assesment*as per 17949_Weld*d Joints.xlsm]S1'!$E$1466*$E$2065,LAMBDA(r,SUM(r)>0))),*N"),1,-1)
Added portion:
*SORT( existing_formula ,1,-*)
Where:
-
1= sort by the first column. -
-1= descending order (largest to smallest).