いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Excel)ヘロンの公式で三角形の面積を求める

 Excelで、ヘロンの公式により三角形の面積を求める方法(三角形の三辺の長さから、その三角形の面積を求める)についてです。

  • LET関数を使うことで、比較的短い式でヘロンの公式を記述して三角形の面積を求めることができます。

手順

f:id:accs2014:20200926140756p:plain:right:w400

 画像ではC2,C3,C4セルに三角形の辺a,b,cの長さが入力されています。
 C6セルに式を入力して、この三角形の面積を求めるものとします。

 C6セルには次のように入力します。

f:id:accs2014:20200926140800p:plain:w700

 C6セル

=LET(s,(C2+C3+C4)/2,SQRT(s*(s-C2)*(s-C3)*(s-C4)))

 ヘロンの公式は「『s=1/2(a+b+c)』としたときに三角形の面積は『s(s-a)(s-b)(s-c)の平方根』で表される」というものです。
 これをExcelの式で表現しようとすると「1/2(a+b+c)」の部分(この例では「(C2+C3+C4)/2」に相当します)を繰り返し入力する必要があるため、式が長くなってしまうのが難点でした(sを一旦別のセルで求めるという手もありますが)。
 しかしLET関数を使うことにより「(C2+C3+C4)/2」の結果に「s」という名前を与えることができ、その後は「s」の1文字で結果を何度も利用することができます。これにより式の長さを抑え、式の内容を把握しやすくできます。

 式を確定した様子です。
 結果は「3317.376」となり、正しい結果が得られています(正確にはさらに桁が続きますが丸められて表示されています)。

f:id:accs2014:20200926140804p:plain:w700

 ところで、次の画像ではa,b,cについても名前をつけて、公式の見た目をより忠実に再現しています。もちろん結果は同じです。

f:id:accs2014:20200926140808p:plain:w750

 C6セル

=LET(a,C2,b,C3,c,C4,s,(a+b+c)/2,SQRT(s*(s-a)*(s-b)*(s-c)))

 C2,C3,C4セルの値にそれぞれ「a」「b」「c」と名前を付けたうえで「(a+b+c)/2」」に「s」と名前を付けています。
 このように、先に定義した名前(「a」「b」「c」)は、その後の名前定義部分ですぐに使える(「s,(a+b+c)/2」のように)のがポイントです。
 これにより三角形の面積は最終的に「SQRT(s*(s-a)*(s-b)*(s-c))」で求められます。
 式は若干長くなりますが、セル参照を減らして式のつくりを把握しやすくするにはこちらの方がよさそうです。