可変数のデータ行を持つGoogleスプレッドシートがあります。特定の列の3つの最高値を合計したいのですが、必ずしも上位3つのセルにあるとは限りません。これまでにデータのある行が1つまたは2つしかない場合は、空のセルをゼロとして扱う必要があります。
どうすればこれを達成できますか?私が考えることができる最も近いものはMAX(A1:A2000)
ですが、2番目と3番目に高いものを考慮せずに、1つの非常に高い値のみを取得します。
=ArrayFormula(SUM(IFERROR(LARGE(A1:A2000,{1,2,3}),0)))
おそらく LARGE() を見たいと思うでしょう。
データセットからn番目に大きい要素を返します。nはユーザー定義です。
私が持っている最も簡単ですが、決して最もエレガントな解決策はありません:
=if(iserror(large({data},1)),0,large({data},1))+
if(iserror(large({data},2)),0,large({data},2))+
if(iserror(large({data},3)),0,large({data},3))
(読みやすくするためにキャリッジリターンを追加)
if
とiserror
は、関数がエラーをスローした場合に0を返すためにあります。 (たとえば、データに2つの値しかない場合。)
もちろん、large({data},1)
は機能的にmax({data})
と同等ですが、一貫性を保つためにそのまま残しました。