2/09/2021

今週のFacebookページの投稿 2021/2/1-2021/2/7【one thing】

今週のFacebookページの投稿 2021/2/1-2021/2/7

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。


2月1日

Excel。TBILLPRICE関数。

読み方は、ティービルプライスで、米国財務省短期証券の額面100ドル当たりの価格を算出します。


2月2日

Excel。TBILLYIELD関数。

読み方は、ティービルイールドで、米国財務省短期証券の利回りを算出します。


2月3日

Excel。TDIST関数。

読み方は、ティーディストで、t分布の右側確率か両側確率を算出します。


2月4日

Excel。T.DIST関数。

読み方は、ティー・ディストで、t分布の左側(下側)累積確率か確率密度を算出します。


2月5日

Excel。T.DIST.RT関数。

読み方は、ティー・ディスト・ライトテールで、t分布の右側(上側)確率を算出します。

Excel2010以降


2月6日

Excel。T.DIST.2T関数。

読み方は、ティー・ディスト・ツーテールで、t分布の両側確率を算出します。

Excel2010以降


2月7日

Excel。TEXT関数。

読み方は、テキストで、数値を書式設定した文字列に変換する

2/07/2021

Excel。VBA。セル内のカタカナだけを全角にしたいけど、どうしたらいいの?【Full-width katakana】

Excel。VBA。セル内のカタカナだけを全角にしたいけど、どうしたらいいの?

<Excel VBA>

Excelにはデータベース機能がありますが、並び替えや集計をするには、そのデータが綺麗である必要があります。


綺麗になっていない一例として、次のようなデータ。


A列の氏名をみてみると、大文字小文字、全角半角、カタカナひらがなが混在しています。


これをB列の調整のように、アルファベットは、半角大文字。

「カタカナ」は全角にしたい。

「ひらがな」は、そのままとするには、どうしたらいいのでしょうか?


自力で修正するとしたら、大変です。

というか、やりたくない作業ですが、現場ではこのような修正が結構あるんですよね。


なので、ここは、Excel VBAでマクロをつくったほうがよさそうです。


プログラム文はこんな感じです。

Sub セル内カタカナ()

    Dim i As Long

    Dim j As Long

    Dim zenkaku As String

    Dim moji As String

    Dim c_moji As String

    Dim lastrow As Long

    

    lastrow = Cells(Rows.Count, "a").End(xlUp).Row

    

    For i = 2 To lastrow

        zenkaku = StrConv(Range("a" & i).Value, vbWide + vbUpperCase)

        c_moji = ""

        

        For j = 1 To Len(zenkaku)

            moji = Mid(zenkaku, j, 1)

            If moji Like "[ァ-ー]" Then

                c_moji = c_moji & moji

            Else

                c_moji = c_moji & StrConv(moji, vbNarrow)

                

            End If

        Next j

        Range("b" & i).Value = c_moji

    Next i

End Sub


ちょっと長いプログラム文に見えますが、やっていることは単純です。

最初は変数宣言ですね。

Dim i As Long

Dim j As Long

Dim zenkaku As String

Dim moji As String

Dim c_moji As String

Dim lastrow As Long


lastrow = Cells(Rows.Count, "a").End(xlUp).Row

lastrowには、データの最終行の行番号を代入します。


For i = 2 To lastrow ~ Next i は、データの件数分を繰り返すためのFor To Nextです。


zenkaku = StrConv(Range("a" & i).Value, vbWide + vbUpperCase)

iが1の時で説明しましょう。


A1のセルの値を、vbWide(半角を全角に変更) さらに、 vbUpperCase(アルファベットを大文字に変更))した値を、zenkakuに代入します。


c_moji = "" は、c_mojiに空の文字列を代入しておきます。


For j = 1 To Len(zenkaku)~Next j は、セル内の文字数分繰り返しを行います。

Len関数はセル内の文字数を算出してくれます。


moji = Mid(zenkaku, j, 1)

セル内の1文字ずつをmojiに代入します。

この代入したmojiをつぎのIf文で該当した場合は文字種を変更させていきます。


If moji Like "[ァ-ー]" Then

c_moji = c_moji & moji

Else

c_moji = c_moji & StrConv(moji, vbNarrow)

End If


If文の条件がわかりにくいですね。


文字が、Like "[ァ-ー]"。

「ァ」から「ー」の間だったら、変更の必要がないので、空文字に追加していきます。

なぜか、「ア」からはじまらないで、「ァ」から始まっているんですね。


外国名の人もいた場合、「・」をつかっていることも想定されるので、「ー」までを範囲にしています。


それ以外ならば、StrConv(moji, vbNarrow)で、全角を半角に変更します。


最後に、b列に変更した値を代入して完了ですね。

Range("b" & i).Value = c_moji


ポイントは、セル内の文字、一文字ずつ確認して変更している点ですね。


このようなプログラム文をつくることで、セル内の文字種を統一することができます。

ひらがなも、カタカナにすべて変わってOKならば、次のプログラム文でも同じ処理をすることができます。


Sub セル内カタカナ()

    Dim i As Long

    Dim lastrow As Long

    lastrow = Cells(Rows.Count, "a").End(xlUp).Row


    For i = 2 To lastrow

        Cells(i, "b").Value = StrConv(Cells(i, "a"), vbWide)  '全角にする

        Cells(i, "b").Value = StrConv(Cells(i, "b"), vbUpperCase)  '大文字にする

        Cells(i, "b").Value = StrConv(Cells(i, "b"), vbHiragana)    'ひらがな

        Cells(i, "b").Value = StrConv(Cells(i, "b"), vbNarrow)  '半角にする

        Cells(i, "b").Value = StrConv(Cells(i, "b"), vbKatakana)    'カタカナにする

        Cells(i, "b").Value = Replace(Cells(i, "b"), "ー", "ー")

        Cells(i, "b").Value = Replace(Cells(i, "b"), "ヴ", "ヴ")

    Next

End Sub


「全角」にして「大文字」にして、いったん「カタカナ」を「ひらがな」にして、カタカナ以外を「半角」にもどしてから、ひらがなを「カタカナ」に変換します。

最後に、Replaceを使って、「ー」や「ヴ」に置換する


また、処理時間はちょっとかかるかもしれませんが、こんな方法もあります。

ちょっと、邪道な方法かもしれませんね。

2/06/2021

2021年1月の閲覧数TOP10をご紹介【Jan 2021 ranking】

2021年1月の閲覧数TOP10をご紹介

<TOP10>

皆様に閲覧していただいた項目の2020年12月TOP10をご紹介させていただきます。

1位

Excel。条件付き書式。And条件での行単位の塗りつぶしはどうやったらいいの? 

https://infoyandssblog.blogspot.com/2021/01/excelandconditional-formatting.html


2位

Excel。2行連続・3行連続と連続して連番を設定したいけど、楽に設定するにはどうするの?

https://infoyandssblog.blogspot.com/2021/01/excel23serial-number.html


3位

Excel。XLOOKUP関数をつかうと、楽に、上位3位の点数に該当する氏名を抽出できます。

https://infoyandssblog.blogspot.com/2021/01/excelxlookup3xlookup.html


4位

Excel。VBA。フィルターの抽出後にコピー。テーブルの時は注意しないといけません。

https://infoyandssblog.blogspot.com/2021/01/excelvbacopy.html


5位

Excel。IF関数。時間の判定はセル番地をつかうことをおススメします。

https://infoyandssblog.blogspot.com/2021/01/exceliftimevalue.html


6位

Excel。料金量がわかりやすい階段グラフの作り方

https://infoyandssblog.blogspot.com/2017/09/excelstaircase-graph.html


7位

Excel。順位推移グラフを作成したいけど、どうしたらいいの?

https://infoyandssblog.blogspot.com/2019/10/excelrank-transition-graph.html


8位

Excel。折れ線グラフを交点0からスタートさせるには?

https://infoyandssblog.blogspot.jp/2013/07/excel0.html


9位

Excel。一行おきの数値の合計を簡単に算出したいけどどうしたらいいの?

https://infoyandssblog.blogspot.com/2020/12/exceltotal-every-other-line.html


10位

Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる

https://infoyandssblog.blogspot.com/2016/03/excel24hour-schedule24.html

2/04/2021

Excel。前回よりも数値がいい件数を求めるのに簡単な方法はないの?【SUMPRODUCT】

Excel。前回よりも数値がいい件数を求めるのに簡単な方法はないの?

<SUMPRODUCT関数>

やりたいことは簡単そうなのに、意外と手間暇がかかったりする帳票というが現場にはあったりします。

例えば、次の表。


B列の1回目の得点とC列の2回目の得点を比べて、2回目の得点のほうが高い人は何人いるのか算出したいとします。


考え方として、B列とC列を比べて、C列のほうが高ければ、「○」と表示させて、その「○」の数を数えるという方法が、思いつきます。


この場合、D2の数式は、

=IF(B2<C2,”○”,””)

とすれば、いいわけです。


そのあとに、COUNTIF関数をつかって「○」を数えれば算出できます。


注意しないといえないのは、COUNTA関数では、算出結果の空白「””」も数える対象になってしまうので、COUNTIF関数を使う必要があります。


F1にそのCOUNTIF関数の数式をつくるとしたら、

=COUNTIF(D2:D11,"○")

と設定します。


COUNTIF関数をつかって件数を数えてもいいのですが、件数が知りたいわけなので、「○」ではなくて、「1」にすれば、SUM関数で合算値を算出するほうが、もっと楽になるわけですね。

=IF(B2<C2,1,””)


このように、判定結果を数値にして、SUM関数で合算することで件数を求めるという方法も楽なのですが、もっと楽に算出する方法があるのです。


それができるのが「SUMPRODUCT関数」です。


このSUMPRODUCT関数を使えば、D列のような一時的に算出させる列やセルを用意しないで、一発で算出することができます。


まずは、F1にSUMPRODUCT関数をつかった数式を設定してみましょう。

=SUMPRODUCT((B2:B11<C2:C11)*1)

確認してみましょう。


先程と同じように、算出されたことが確認できました。


数式について、説明していきます。

SUMPRODUCT関数は、SUM関数+PRODUCT関数の二つの関数が一つになった関数で、SUM関数は、和算。

PRODUCT関数は、乗算の関数です。


これを踏まえたうえで、

引数の(B2:B11<C2:C11)を説明してきます。

これは、B2<C2~B11<C11まで成立しているか否かを算出させています。


実際にD列をつかって、算出してみます。


条件が満たされていれば「TRUE」。そうでなければ「FALSE」が算出されます。


この「TRUE」「FALSE」に「*1」すると、数値に変換することができます。

なぜ、「1」と「0」なのかというと、Excelでは、TRUEが「1」。

FALSEが「0」と設定されているからです。


この結果を合計したのが、F1の値というわけです。


SUMPRODUCT関数は、メジャーというほどの関数ではないかもしれませんが、ちょっと知っていると、意外と使える関数なのかもしれませんね。

今回のSUMPRODUCT関数のように、意外と知っていると便利という関数が、それぞれの現場であるかと思いますので、探して、試してみるといいかもしれませんね。

2/03/2021

2020年10月~12月のグラフ閲覧数TOP5をご紹介【Graph Quarter Top5】

2020年10月~12月のグラフ閲覧数TOP5をご紹介

<グラフ:TOP5>

皆様に閲覧していただいている、2020年10月~12月のグラフ閲覧数のランキングです。


1位

Excel。散布図に表示された一次方程式は何?回帰分析?で予測できるんだって

二つのデータの間をわかりやすくするために、「散布図」をつくってみたので、ついでに近似直線を描いてみました。


<続きはこちら>

Excel。散布図に表示された一次方程式は何?回帰分析?で予測できるんだって

https://infoyandssblog.blogspot.com/2020/12/excellinear-equation.html


2位

Excel。折れ線グラフを交点0からスタートさせるには?

すんなり、作れない。交点0(ゼロ)から描いた折れ線グラフ。

どのようにすればいいのでしょうか?


<続きはこちら>

Excel。折れ線グラフを交点0からスタートさせるには?

https://infoyandssblog.blogspot.jp/2013/07/excel0.html


3位

Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる

一日24時間のタイムスケジュールが把握できる、【24時間横棒グラフ】です。

よく、夏休みとかの一日のスケジュールっていうのがあったと思いますが、ずばり、それの横棒グラフ版です。


<続きはこちら>

Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる

https://infoyandssblog.blogspot.jp/2016/03/excel24hour-schedule24.html


4位

Excel。料金量がわかりやすい階段グラフの作り方

少し前ですが、携帯電話会社さんが料金プランを変更というニュースがありました。

そこに掲載されいたグラフみたいなものを、Excelで作れないかなぁ~と思い作成してみたら意外と大変だったので、今回は、階段グラフをご紹介します。


<続きはこちら>

Excel。料金量がわかりやすい階段グラフの作り方

https://infoyandssblog.blogspot.com/2017/09/excelstaircase-graph.html


5位

Excel。時間経過の折れ線グラフ。実は散布図で作るとより綺麗に描けるのです。

時間経過に関する折れ線グラフの場合には、ただ折れ線グラフを作るのもいいのですが、散布図で作ってみるというのもいいですよ。


<続きはこちら>

Excel。時間経過の折れ線グラフ。実は散布図で作るとより綺麗に描けるのです。

https://infoyandssblog.blogspot.com/2016/08/excelgraph.html

2/01/2021

Access。都道府県順のように、決まった順番で並び替えをしたいけど、どうしたらいいの?【SORT】

Access。都道府県順のように、決まった順番で並び替えをしたいけど、どうしたらいいの?

<クエリ:SORT>

Accessのテーブル。インポートした外部データだったりすると、意外とフィールドが無くて、店舗コード順などで並び替えをしたいのに、出来ないことがあります。


かといって、並び替えをしたいだけなのに、テーブルにフィールドを新しく追加して、データを追加してという作業を行うのは、ちょっと面倒です。


そこで、クエリを使うことで、この問題は比較的簡単に解決します。

ただ、クエリを使うといっても、Switch関数を使うとすると、これまた、面倒です。


今回は、次のテーブルを用意しております。


この店舗フィールドを「新宿・品川・渋谷・横浜」という順番で並べたいわけです。


Excelだと、このようなことをしたい場合には、オプションの詳細設定にある「ユーザー設定リストの編集」から、ユーザー設定リストに追加すれば対応することができます。


このユーザー設定リストは、Accessにはないので、Excelと同じ対応方法がつかえないわけです。


なので、もう一つテーブルを用意します。

二つ目のテーブルは、独自の並び替えを行うためのテーブルです。


Excelのユーザー設定リストのようなものです。今回は、「新宿・品川・渋谷・横浜」という順番で並び替えをしたいわけですが、正確には、店舗NO順にしたいわけです。


ポイントは、このテーブルの順番で並び替えを行うことになりますから、店舗NOでも店舗名でもなく、さらに独自な順番というのがあれば、その順番のフィールドを用意する必要があります。


それでは、用意した二つのテーブルをつかって、クエリを作っていきます。

作成タブの「クエリデザイン」をクリックします。


「T店舗売上」テーブルと「T店舗名簿」テーブルを追加します。


両方のテーブルにある、共通しているフィールドを連結してリレーションシップを設定します。

今回は、並び替えを行いたいテーブルのフィールドを全部使用します。


最後尾に、並び替えのキーとなるフィールドである「T店舗名簿」の店舗NOを追加します。

最後尾に追加した、「店舗NO」フィールドは、表示させる必要がないので、非表示します。

そもそも、やりたいことは、並び替えをすることなので、「昇順」で並び替えを設定します。


実行して、確認してみましょう。


希望通りの「店舗NO」順で並び替えたクエリをつくることができました。

このように、独自の順番で並び替えを行いたい場合には、テーブルを用意することで、対応することができます。

1/31/2021

今週のFacebookページの投稿 2021/1/25-2021/1/31【Facebook】

今週のFacebookページの投稿 2021/1/25-2021/1/31

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

1月25日

Excel。SUMXMY2関数。

読み方は、サム オブ エックス マイナス ワイ スクエアエドで、Σ(x-Y)^2。 対応する組の要素の差を2乗して合計


1月26日

Excel。SWITCH関数。

読み方は、スイッチで、式で指定した値を比較して最初に一致する値を返す


1月27日

Excel。SYD関数。

読み方は、エスワイディーで、減価償却費を算術級数法で算出(日本では利用が認められてない) Sum of Year's Digit depreciationの略


1月28日

Excel。T関数。読み方は、ティーで、文字列を抽出する


1月29日

Excel。TAN関数。読み方は、タンジェントで、角度の正接(タンジェント)算出


1月30日

Excel。TANH関数。読み方は、ハイパーポリック タンジェントで、数値の双曲線正接を算出


1月31日

Excel。TBILLEQ関数。読み方は、ティービルイーキューで、米国財務省短期証券の債権に相当する利回りを算出