2/29/2024

Excel。先頭の文字と同じデータが何件あるか、手早く算出したい。【first character】

Excel。先頭の文字と同じデータが何件あるか、手早く算出したい。

<COUNTIF関数>

データの先頭の文字と同じデータが何件あるのかを算出したい場合、どのようにしたらいいのでしょうか。


先頭の文字が何件ということから、COUNTIF関数かCOUNTIFS関数をつかうわけですが、考えないといけないのが、検索条件です。


次の表をつかって説明します。

先頭の文字と同じデータ

B2:B8まえに会員番号が入力されています。

この会員番号は、先頭の文字ごとにAからCで区分されています。


E2:E4に区分されているAからCの件数を算出したいわけです。

そこで、E2には、次の数式を設定しました。


=COUNTIF($B$2:$B$8,D2&"*")


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

算出することができました。


ポイントの条件ですが、ワイルドカードをつかうことで、対応することができます。

設定したCOUNTIF関数の数式を確認します。


最初の引数、「範囲」には、$B$2:$B$8と設定します。

オートフィルで数式をコピーするので、絶対参照を忘れずに設定します。


2番目の引数は、「検索条件」

最初の文字ということなので、「○○から始まる」という条件を設定できればいいわけです。

このような条件をつくるためには、ワイルドカードの「*」をつかうことで対応することができます。


D列に最初の文字が用意されているので、

D2。

そして「&(アンパサンド)」の文字結合を入力したあとに「”*”」と入力します。


「”(ダブルコーテーション)」でワイルドカードを囲むのを忘れないようにしましょう。


これで、先頭の文字と同じデータが何件あるか、手早く算出することができます。

2/28/2024

Excel。マイナスのパーセントなら、自動的に文字の色を赤色にしたい。【minus】

Excel。マイナスのパーセントなら、自動的に文字の色を赤色にしたい。

<表示形式>

Excelでは、三桁区切りの「,(カンマ)」を設定すると、数値がマイナスの時に、自動的に、文字の色が赤色に変わります。

ところが、「%」だと、数値がマイナスのパーセントの時は、文字の色が赤色に変わってくれません。


そこで、「表示形式」のユーザー定義を設定することで、パーセントの数値がマイナスになっても、文字の色を赤色にすることができます。

2/27/2024

Excel。平均時速は、AVERAGE関数ではなく調和平均のHARMEAN関数をつかいます【harmonic mean】

Excel。平均時速は、AVERAGE関数ではなく調和平均のHARMEAN関数をつかいます

<HARMEAN関数>

速度など単位あたりの平均を算出するには、HARMEAN関数をつかって調和平均で算出する必要があります。

調和平均

B2には、行きは徒歩だったので、時速4キロでした。

B3には、帰りは車だったので、時速40キロでした。


往復の平均時速を算出したいわけなので、B5には、HARMEAN関数をつかった数式を設定します。

=HARMEAN(B2:B3)


これで、平均時速を算出することができました。

単純に、4と40の平均で算出してしまうと、時速22キロになってしまいます。


では、検算してみましょう。仮に往復はそれぞれ10キロだったとしてみます。


B8には、徒歩の時間を算出しました。10キロで時速4キロです。


=10/B2


B9には、車の時間を算出します。10キロで時速40キロです。


=10/B3


往復は20キロで、所要時間は、2.75です。

なので、


=20/B10


その結果が、B11に算出されています。

B5と合致したことが確認できました。

2/26/2024

Excel。表中の小計を除いて最大値を求めたいけど、小計を修正しないで算出したい。【MAX】

Excel。表中の小計を除いて最大値を求めたいけど、小計を修正しないで算出したい。

<ISFORMULA関数・MAXIFS関数>

表中に小計が含まれている場合、データの最大値を算出したくても、小計の値が大きいため範囲選択をデータだけにする必要があります。


要するに、小計が邪魔な訳です。

小計を除いて最大値

C5とC9は、SUM関数をつかって小計を算出しています。

C10の最大値はMAX関数。


=MAX(C2:C9)


という数式で求めていますが、C2:C9と単純に範囲選択をすると、正しく最大値を算出できません。


そこで、よく、SUM関数やMAX関数ではなく、SUBTOTAL関数や、AGGREGATE関数をつかうことで、小計を含めた範囲選択で対応することができると説明があるわけです。


しかしながら、すでに表があり、しかも、小計の算出箇所が多い場合、SUM関数をSUBTOTAL関数で修正するには、大変です。


そこで、現在あるSUM関数を修正しないで、最大値を手早く算出する方法をご紹介します。


登場するのは、ISFORMULA関数です。


ISFORMULA関数は、セル内のデータが数式なのかを判断することができる関数です。


小計は、SUM関数という数式を使っていますので、数式でないと判断されたものだけの最大値ならばいいというわけです。

D2に設定した数式は、


=ISFORMULA(C2)


この数式をD9までオートフィルで数式をコピーします。

数式ならば、TRUE。

そうでなければ、FALSEを算出します。


その結果をつかい、D10には、次の数式を設定します。


=MAXIFS(C2:C9,D2:D9,FALSE)


条件付き最大値を算出できる、MAXIFS関数をつかうことで、数式以外を対象にした最大値を算出することができます。


最後に、MAXIFS関数の引数を確認しておきます。


最初は、最大範囲です。

最大値を算出したいデータがあるところなので、C2:C9と設定します。


2番目は、条件範囲1です。

条件の範囲ですから、D2:D9を設定します。


3番目は、条件1です。

FALSEと設定します。


真・偽なので、”FALSE”のように、「”(ダブルコーテーション)」で囲ってしまうと文字列になってしまうので、不要です。

2/25/2024

Excel。FV関数は将来の価値を算出する関数です。【FV】

Excel。FV関数は将来の価値を算出する関数です。

<関数辞典:FV関数>

FV関数

読み方: エフヴイ  

読み方: フューチャー・バリュー

分類: 財務 

FV関数

FV(利率,期間,定期支払額,[現在価値],[支払期日])

将来の価値を算出する Futer Value の略

2/24/2024

Excel。2023/12/31-1/6にHLOOKUP関数など紹介したFacebookページのコメントです。【Trivia】

Excel。2023/12/31-1/6にHLOOKUP関数など紹介したFacebookページのコメントです。

<Facebookページ>

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

12月31日

Excel。

HEX2BIN関数

読み方: ヘックストゥビン  

読み方: ヘキサデジマルトゥバイナリ

分類: エンジニアリング 

HEX2BIN(数値,[桁数])

16進数を2進数に変換する 




1月1日

Excel。

HEX2DEC関数

読み方: ヘックストゥデック  

読み方: ヘキサデジマルトゥデジマル

分類: エンジニアリング 

HEX2DEC(数値)

16進数を10進数に変換する 




1月2日

Excel。

HEX2OCT関数

読み方: ヘックストゥオクト  

読み方: ヘキサデジマルトゥオクタル

分類: エンジニアリング 

HEX2OCT(数値,[桁数])

16進数を8進数に変換する 




1月3日

Excel。

HLOOKUP関数

読み方: エイチルックアップ  

分類: 検索/行列 

HLOOKUP(検索値,範囲,行番号,[検索方法])

横方向の表からデータを検索して抽出する 




1月4日

Excel。

HOUR関数

読み方: アワー  

分類: 日付時刻 

HOUR(シリアル値)

時刻から"時"を算出する 




1月5日

Excel。

HYPERLINK関数

読み方: ハイパーリンク  

分類: 検索/行列 

HYPERLINK(リンク先,[別名])

他のドキュメントへのリンクを作成します 




1月6日

Excel。

HYPGEOMDIST関数

読み方: ハイパージオムディスト  

読み方: ハイパージオメトリックディストリビューション

分類: 互換性 

HYPGEOMDIST(標本の成功数,標本数,母集団の成功数,母集団の大きさ)

超幾何分布の確率を算出します 

2/23/2024

Excel。VBA。シート状の複数のテーブルをまとめて元の表に戻す「範囲に変換」【table release】

Excel。VBA。シート状の複数のテーブルをまとめて元の表に戻す「範囲に変換」

<ListObjectsオブジェクト>

シート状の複数のテーブルが存在しています。


A1:B8までのテーブルは、集計行が表示されています。

A10:C16までのテーブルは、未提出のみで抽出されています。


これらのテーブル機能が挿入されている表を、通常の表である。「範囲に変換」するには、どのようにしたらいいのでしょうか。


単純にテーブルデザインタブにある「範囲に変換」を実行するだけだと、縞々が残り、集計行を表示してある場合は、集計行も残ってしまうわけです。


抽出は、クリアしなくても大丈夫ですが、クリアして全データがみえるようにしたくなります。


手順としては、

1・テーブルデザインタブの集計行のチェックを外す。

2・テーブルデザインタブのテーブルスタイル「なし」にして縞々のデザインを解除します。

3・テーブルデザインタブの「範囲に変換」をクリックして、表に戻します。


これらの処理をしなければなりませんが、複数テーブルがあるというのは、かなり面倒な処理といえます。


そこで、Excel VBAでプログラム文をつくって対応することにしました。


Sub 範囲に変換()

    Dim LO As ListObject


    For Each LO In ActiveSheet.ListObjects

        LO.ShowTotals = False 

        LO.TableStyle = ""  

        LO.Unlist   

    Next

    

End Sub


では、実行してみましょう。

範囲に変換

 

このように、通常の表(範囲に変換)に戻すことができました。


それでは、プログラム文を確認しておきましょう。

Dim LO As ListObject

変数にListObjectオブジェクト(シート内の全てのテーブルが含まれます)を設定します。


For Each LO In ActiveSheet.ListObjects ~ Next

シート内のテーブル数、繰り返し処理をします。


LO.ShowTotals = False  は、集計行を非表示にします。Trueだと表示します。


LO.TableStyle = "" は、テーブルスタイルをなしに設定します。これで縞々はなくなります。


LO.Unlist 範囲に変換 を実行します。


オートフィルターは、範囲に変換で、自動的にクリアされます。

このように、たった数行で、シート内のテーブルを範囲に変換することができます。