7/07/2023

Excel。数値がすべて入力されてから平均値を算出したいけど、どうしたらいい【have everything】

Excel。数値がすべて入力されてから平均値を算出したいけど、どうしたらいい

<IF+COUNT+AVERAGE関数>

平均値を算出するには、AVERAGE関数をつかえば、手早く算出できます。


そもそも、平均値は、数値の合計値をその件数で除算した値です。


ということは、数値の件数に差があると、平均値を比べることができません。


次の表で説明します。


7行目には、AVERAGE関数で平均値を算出する数式が設定してあります。


C7も、データが3件の平均が算出してあります。


B7の平均は5件分とすべてのデータが入力してあるので、当然B7とC7を単純に比べることはできません。


そこで、すべてのデータが入力されたらば、平均値を算出するようにしたいわけです。

=IF(COUNT(B2:B6)=5,AVERAGE(B2:B6),"")

B7に次の数式を設定します。

=IF(COUNT(B2:B6)=5,AVERAGE(B2:B6),"")


C7には、オートフィルで数式をコピーします。


これで、データがすべて入力されていない場合には、平均値を算出、表示しないようにできます。


数式を確認しておきましょう。

この数式のポイントはCOUNT関数をつかっているところです。


範囲内のセルの一部が空白だったら計算しないというようなIF関数を考えがちですが、範囲の一部というどこのセルが空白なのかを調べる条件をつくるのは、大変です。


そこで、COUNT関数を組み合わせることで、手早く、データが全て入力されていなければ算出しないようにできます。


なお、対象が数値だったので、COUNT関数をつかって対応しましたが、当然文字の場合は、COUNT関数では対応できません。


COUNT関数は数値のみが、数える対象です。

7/06/2023

Excel。「または」のOR条件で手早く合計を算出するにはどうしたらいい。【OR condition total】

Excel。「または」のOR条件で手早く合計を算出するにはどうしたらいい。

<SUM+SUMIFS関数>

複数条件の合計を算出するならば、SUMIFS関数を使います。


このSUMIFS関数で、「または」のOR条件で算出したい時には、アイディアが必要です。


次の表をつかい、まずは対応方法から確認していきましょう。

OR集計

A1:D9に表があります。


F1:F3に条件を用意してあります。


今回は、商品名が、「鉛筆」と「ボールペン」の売上高の合計値を算出します。


そこで、F6には、次の数式を用意します。

=SUM(SUMIFS(D2:D9,B2:B9,F2:F3))


これで、「鉛筆」と「ボールペン」の売上高の合計を算出することができます。


なぜ、SUMIFS関数だけだと、スピル機能によって、鉛筆とボールペンごとの合計値を算出するだけで、条件に合致した合計値は算出してくれません。


F6の数式は、

=SUMIFS(D2:D9,B2:B9,F2:F3)


そのため、SUM関数をつかってネスト構造にすることで、合計値を算出することができたというわけです。


そして、一番の問題ですがSUMIFS関数は、「または」のOR条件は、対応していないということです。


F6の数式を変更してみます。

=SUMIFS(D2:D9,B2:B9,F2,B2:B9,F3)


もう一つ条件が追加されました。

ところが、結果を見ると、「0」と表示されています。


SUMIF関数を複数使って合算させる方法もあります。


=SUMIF(B2:B9,F2,D2:D9)+SUMIF(B2:B9,F3,D2:D9)


ただ条件が増えると、可読性が悪化するので、あまりお勧めできません。

7/05/2023

Excel。2023/5/7-5/13にTREND関数など紹介したFacebookページのコメントです。【Trivia】

Excel。2023/5/7-5/13にTREND関数など紹介したFacebookページのコメントです。

<Facebookページ>

Facebookページに書いた、Excelの豆知識(Trivia)です。

Facebookページ

5月7日

Excel。

TREND関数

読み方は、トレンドで、重回帰分析による値を予測する



5月8日

Excel。

TRIM関数

読み方は、トリムで、不要なスペースを削除する



5月9日

Excel。

TRIMMEAN関数

読み方は、トリムミーンで、異常値を除いて平均値を算出します。



5月10日

Excel。

TRUE関数

読み方は、トゥルーで、TRUEを返す



5月11日

Excel。

TRUNC関数

読み方は、トランクで、指定桁数になるように切り捨てる



5月12日

Excel。

TYPE関数

読み方は、タイプで、データ型を表す数値を算出する



5月13日

Excel。

UNICODE関数

読み方は、ユニコードで、文字列の最初の文字のUnicode番号を返す

7/04/2023

Excel。セルに数式も、その結果も表示したいならFORMULATEXT関数が便利です【indicate】

Excel。セルに数式も、その結果も表示したいならFORMULATEXT関数が便利です

<FORMULATEXT関数>

多くの数式をまとめて、確認したい時には、数式タブにある「数式の表示」をクリックすることで、算出結果ではなくて、数式を表示することができます。


「数式の表示」は、セル上に数式を表示してくれるのですが、算出結果が置き換わってしまうので、算出結果を同時に確認することができません。


手早く、数式も確認して、さらに算出結果も同時に確認したい場合にはFORMULATEXT関数をつかうことで、対応することができます。


次の表をつかって、確認してみましょう。

FORMULATEXT関数

D7にFORMULATEXT関数をつかった、数式を設定しました。

=FORMULATEXT(D6)


これで、D6に設定してある数式と、その結果を同時に表示することができました。


FORMULATEXT関数は、ふりがなを表示する時につかう、PHONETIC関数の数式版という関数です。


また、FORMULATEXT関数の引数には、セルだけはなく、範囲を設定することもできます。


F2に設定した数式は、

=FORMULATEXT(E2:E5)


スピル機能によって、数式がF5まで拡張(ゴースト)されるので、オートフィルで数式をコピーする必要はありません。


このように、まとめて数式を確認したい時などには、FORMULATEXT関数をつかえば、手早く確認することができます。

7/03/2023

Excelの様々な関数の読み方や引数などを紹介。今回は、TEXT関数~TEXTSPLIT関数です。【dictionary】

Excelの様々な関数の読み方や引数などを紹介。今回は、TEXT関数~TEXTSPLIT関数です。

<Excel関数辞典:VOL.82>

今回は、TEXT関数~TEXTSPLIT関数までをご紹介しております。

Excel関数辞典

TEXT関数

読み方: テキスト  

TEXT(値,表示形式)

数値を書式設定した文字列に変換する 



TEXTAFTER関数

読み方: テキストアフター  

TEXTAFTER(text,delimiter,[instance_num],[match_mod],[match_end],[if_not_found])

文字を区切った後のテキストを返す。
TEXTAFTER(text,delimiter,[instance_num],[ignore_case])から変更 



TEXTBEFORE関数

読み方: テキストビフォー  

TEXTBEFORE(text,delimiter,[instance_num],[match_mod],[match_end],[if_not_found])

文字を区切る前のテキストを返す。

TEXTBEFORE(text,delimiter,[instance_num],[ignore_case])から変更 



TEXTJOIN関数

読み方: テキストジョイン

TEXTJOIN(区切り文字,空のセルは無視,テキスト1,…)

複数の範囲や文字列からテキストを結合する 



TEXTSPLIT関数

読み方: テキストスピリット  

TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty],[match_mode],[pat_with])

区切り記号を使用してテキストを行または列に分割する 

7/02/2023

Excel。DURATION関数は定期的に利子に支払われる証券の年間マコーレー係数を算出します【DURATION】

Excel。DURATION関数は定期的に利子に支払われる証券の年間マコーレー係数を算出します

<関数辞典:DURATION関数>

DURATION関数

読み方: デュレーション  

分類: 財務 

DURATION関数

DURATION(受渡日,満期日,利率,利回り,頻度,[基準])

定期的に利子に支払われる証券の年間マコーレー係数を算出する

7/01/2023

Excel。VBA。手早く小計機能で処理したいので、プログラムをつくってみた【Subtotal】

Excel。VBA。手早く小計機能で処理したいので、プログラムをつくってみた

<Excel VBA:Subtotal>

Excelの小計機能を使うときには、最初に並べ替えをして、そのあとに、データタブの「小計」をつかって、集計するわけですね。


ただ、処理数が多く、意外と面倒な処理だといえます。


そこで、Excel VBAでプログラムをつくって対応していきます。


次のデータを用意しました。

小計機能

では、次のようにブログラムをつくってみました。


Sub 小計機能()

    With ActiveSheet.Sort

        .SortFields.Clear

        .SortFields.Add2 Key:=Range("b1"), Order:=xlAscending

        .SetRange Range("a1").CurrentRegion

        .Header = xlYes

        .Apply

    End With

    Range("a1").CurrentRegion.Subtotal groupby:=2, Function:=xlSum, totallist:=4

End Sub


実行してみます。


このように、小計処理をおこなうことができました。


では、プログラム文を説明していきます。


色々なプログラム言語とExcel VBAが少々ことなるところは、あくまでも、「Excel」なんだということです。


要するに、Excelのダイアログボックスをつかった処理は、そのダイアログボックスと同じ項目を設定する必要があります。


小計機能は、基準となる列を並べ替え処理をして、まとめておく必要があります。


並べ替えをしているのが、下記の部分です。

    With ActiveSheet.Sort

        .SortFields.Clear

        .SortFields.Add2 Key:=Range("b1"), Order:=xlAscending

        .SetRange Range("a1").CurrentRegion

        .Header = xlYes

        .Apply

    End With


これは、並べ替えのダイアログボックスをみれば、どこを設定しているか、わかります。


「SortFields.Add2 Key:=Range("b1"), Order:=xlAscending」の「SortFields.Add2 Key:=Range("b1")」は、最優先されるキーです。


商品名ごとの集計をしたいので、見出しの「商品名」があるのがB1なので、「Range("b1")」とします。


「Order:=xlAscending」は、順序なので、昇順で並べ替えをしたいので、「xlAscending」と設定します。


「SetRange Range("a1").CurrentRegion」は、並べ替えは自動的に範囲選択をしますので、A1を起点として連続する範囲を、並べ替えの対象とします。


「Header = xlYes」は、先頭行を見出しとして使用するのチェックマークです。


「Apply」は、OKボタンですね。


これで、並べ替えが行われます。


そして、小計機能をおこなうわけです。


この小計機能もダイアログボックスなので、それを設定するように、プログラムをつくってあげます。


Range("a1").CurrentRegion.Subtotal groupby:=2, Function:=xlSum, totallist:=4


出だしの「Range("a1").CurrentRegion.Subtotal」は、A1を起点とした範囲を「Subtotal」=小計します。


「groupby:=2」は、グループの基準です。

左から2列目の商品名を基準として集計しますので、「2」です。


「Function:=xlSum」は、集計方法です。

合計なので、「xlSum」と設定します。


「totallist:=4」は、集計するフィールドです。

左から4列目の売上高の集計をしたいので、「4」と設定します。


これで、小計をすることができます。


また、データ量が増減しても、「CurrentRegion」としていることで、対応することも可能です。