web-dev-qa-db-fra.com

Comment puis-je retourner une chaîne au lieu d'un nombre lorsque le nombre est 0

J'ai une formule qui renvoie le poids moyen en livres, en taille et en graisse corporelle pour les semaines pendant lesquelles j'ai suivi un régime. Le problème est que je n'ai pas mesuré le% de graisse corporelle avant un certain temps, donc certaines moyennes sont à 0. Je préfère afficher N/A au lieu de 0%, est-ce possible? Et cette formule peut-elle être rendue moins alambiquée? La graisse corporelle est dans la colonne D.

={query(query({ArrayFormula((if(len(Log!A2:A), quotient(Log!A2:A - min(Log!A2:A), 7) + 1, ))), Log!B2:B}, "select Col1, Avg(Col2) where Col1 > 0 group by Col1"), "select Col1"), ArrayFormula(round(query({ArrayFormula(if(len(Log!A2:A), quotient(Log!A2:A - min(Log!A2:A), 7) + 1, )), Log!B2:B}, "select Avg(Col2) where Col1 > 0 group by Col1 label Avg(Col2) ''"), 1) & " lbs"), ArrayFormula(round(query({ArrayFormula(if(len(Log!A2:A), quotient(Log!A2:A - min(Log!A2:A), 7) + 1, )), Log!C2:C}, "select Avg(Col2) where Col1 > 0 group by Col1 label Avg(Col2) ''"), 1) & " cm"), ArrayFormula(round(query({ArrayFormula(if(len(Log!A2:A), quotient(Log!A2:A - min(Log!A2:A), 7) + 1, )), Log!D2:D}, "select Avg(Col2) where Col1 > 0 group by Col1 label Avg(Col2) ''"), 1) & "%")}
1
Rob Pitt
  • pas besoin d'avoir plusieurs fonctions ARRAYFORMULA dans une formule
=ARRAYFORMULA({
 QUERY(QUERY({IF(LEN(Log!A2:A), QUOTIENT(Log!A2:A-MIN(Log!A2:A), 7)+1, ), Log!B2:B}, 
 "select Col1,avg(Col2) where Col1>0 group by Col1"), "select Col1"), 
 ROUND(QUERY({IF(LEN(Log!A2:A), QUOTIENT(Log!A2:A-MIN(Log!A2:A), 7)+1, ), Log!B2:B}, 
 "select avg(Col2) where Col1>0 group by Col1 label avg(Col2)''"), 1)&" lbs", 
 ROUND(QUERY({IF(LEN(Log!A2:A), QUOTIENT(Log!A2:A-MIN(Log!A2:A), 7)+1, ), Log!C2:C}, 
 "select avg(Col2) where Col1>0 group by Col1 label avg(Col2)''"), 1)&" cm", 
 REGEXREPLACE(TO_TEXT(
 ROUND(QUERY({IF(LEN(Log!A2:A), QUOTIENT(Log!A2:A-MIN(Log!A2:A), 7)+1, ), Log!D2:D}, 
 "select avg(Col2) where Col1>0 group by Col1 label avg(Col2)''"), 1)&"%"), 
 "^0%$", "N/A")})
0
user0