オーロラさんの勉強帳

SESの客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

【Excel】LEN・LENB関数を使って全角・半角をチェックする方法をわかりやすく説明 ~情シスあるある。Excelの申請書・依頼書で使える知識~

情シスで働いていると、Excelの申請書・依頼書でユーザから依頼がくるケースは多いと思います。また、登録・更新するデータが入力されたExcelやCSVファイルが添付されて依頼がくるようなこともあります。

そのExcelを基にシステムの管理者画面やデータベースに直接SQLで登録や更新を行うのですが、ユーザから送付されたExcelのデータに不備が多いこと多いこと。
全角、半角のルールが守られていなかったり、必須項目の入力が漏れていたり、文字数が超過していたり。

今回はそんなときに使える全角・半角を確認する方法をわかりやすく説明いたします。


LEN関数、LENB関数の説明

全角、半角の確認を行う際に使用するLEN関数、LENB関数について説明します。

LEN関数

LEN関数は引数に指定した文字列の文字数を返します。半角文字(1バイト)、全角文字(2バイト)も関係なく、1文字は1として数えます。


■LEN関数の書式
=LEN(文字列)

LENB関数

LENB関数は引数に指定した文字列のバイト数を返します。半角文字は1バイト、全角文字は2バイトです。


■LENB関数の書式
=LEN(B文字列)

LEN関数・LENB関数の使用例

文字列が入力している特定の1セルをLENB関数の引数として指定した使用例

引数にセル範囲を指定する『#SPILL!』とエラーになります。

#SPILL!エラー


LEN関数、LENB関数の引数として、文字列を直接指定した使用例


LEN・LENB関数を使って入力された文字列が全角のみ、半角のみ、全角・半角混在かを確認する方法

LEN・LENB関数で全角のみ、半角のみ、全角半角混在を判断する考え方

<全角のみ、半角のみ、全角半角混在を判断する方法>
■全角のみの場合
 文字数×2=バイト数になります。
 つまり、『LEN関数の結果×2 = LENB関数の結果』となります。
 
■半角のみの場合
 文字数=バイト数になります。
 つまり、『LEN関数の結果 = LENB関数の結果』となります。

■全角半角混在の場合
 全角のみの場合にも、半角のみの場合にも合致しない場合は、全角半角混在のデータとなります。

Excel 全角・半角の判断方法
Excel 全角・半角の判断方法

申請書や依頼書で文字列が全角のみ、半角のみ、全角・半角混在かをチェックしてみる

以下の申請書で全角、半角のチェックをしてみましょう。
B列(社員番号)は半角、C列(社員氏名)は全角、D列(フリガナ)は半角で入力する必要があります。

LEN・LENB関数を使って全角・半角をチェックする

単純にTRUE、FALSEで申請書の規則通りに全角のみ、半角のみで入力されているかを確認しています。

■B列、D列の半角チェック
『=LEN(B5)=LENB(B5)』、『=LEN(D5)=LENB(D5)』のように、全角のみなら「TRUE」、全角以外の文字があるなら「FALSE」を返します。

■C列の全角チェック
『=LEN(C5)*2=LENB(C5)』のように、半角のみなら「TRUE」、半角以外の文字があるなら「FALSE」を返します。


条件式書式で申請書の規則に違反するデータにわかりやすい背景色を設定する

条件付き書式で、申請書の規則に違反するデータに背景色を設定する方法を記載します。
以下の例は、B列について半角の指定があるので、全角の文字が含まれる場合に背景色を黄色に設定します。

1.「ホーム」タブ、「条件付き書式」、「新しいルール」を順次選択します。

2.「数式を使用して、書式設定するセルを決定」を選択、「次の数式を満たす場合に値を書式設定」欄に『=LEN(B5)<>LENB(B5)』と入力、「書式」を選択します。
※=LEN(B5)<>LENB(B5)は、半角以外の文字が含まれた場合に書式を設定する条件となります。
※C列で全角以外の文字が含まれるセルを強調させる場合は、セル「C5」に『=LEN(C5)*2<>LENB(C5)』を指定します。

3.「塗りつぶし」タブを選択、「背景色」に黄色を選択、「OK」を選択します。

4.「OK」を選択します。

5.条件式書式を設定したセル「B4」をコピーし、条件付き書式を設定したいセル範囲を複数選択し(画像の場合はセルB5:B8)、右クリック、貼り付けオプションの「書式設定」を選択。

6.半角以外の文字があるセル(全角文字が含まれるセル)の背景色を黄色で強調することができました。


事前に申請書・依頼書のExcelに、全角半角・必須・文字数などを条件付き書式や入力規則で依頼者に気づかせれるように作成しておくのが、効率のいいやり方だと思います。
ただ、それでも不備のある状態で依頼されてしまうのが、情シスあるあるといったところでしょうか。

以上、お読みいただきありがとうございました。

【資格】AWS認定クラウドプラクティショナー試験 (CLF-C01)に合格。勉強方法、学習時間などを紹介します。

AWSの中で最も基礎的な資格であるAWS認定クラウドプラクティショナー試験(CLF-C01)に合格しましたので、合格するための勉強方法などを紹介します。


AWS認定クラウドプラクティショナー(CLF-C01)とは

AWS認定クラウドプラクティショナーは、AWSの資格の中では最も基礎的な資格となっています。AWSクラウドの全体的な知識を効率よく学習することができます。

AWS認定クラウドプラクティショナーについて、公式サイトでは以下のように紹介されています。

この資格は、組織がクラウドイニシアチブを実装するための重要な知識を持つ人材を特定して育成するのに役立ちます。AWS Certified Cloud Practitioner を取得することで、クラウドへの理解と基礎的な AWS の知識が認定されます。

引用元 AWS Certified Cloud Practitioner 認定 | AWS 認定 | AWS


試験概要

出題範囲

出題範囲は以下の通りです。(2022年3月時点)

f:id:auroralights:20220320230942p:plain
AWS認定クラウドプラクティショナーの出題範囲

試験時間・合格ライン

試験時間:90分
合格ライン:700点以上

(試験結果は100点~1000点の範囲のスコアになります。最低合格スコアが700点。分野ごとの足切り点数はなく、試験全体で合格することが求められます)


試験についての最新情報はAWS公式サイトをご確認ください。
AWS Certified Cloud Practitioner 認定 | AWS 認定 | AWS


学習期間

AWS認定クラウドプラクティショナー試験をうけるにあたって約1カ月間の学習をしました。
平日は1日30分~1時間、土日は30分~2時間ほどなので、合計の学習時間は20時間~30時間ほどだと思います。
IT未経験の方でも、学習時間の確保ができれば1カ月~2カ月ほどで合格できるかと思いました。
経験者だと2週間~1カ月ほどで合格できると感じました。


AWS認定クラウドプラクティショナー(CLF-C01)に合格するためのおすすめの学習方法

私がおすすめする学習方法は、以下3つのの教材での学習です。

  1. AWS認定資格試験テキスト AWS認定クラウドプラクティショナー
  2. Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)
  3. AWS公式サイトのサンプル問題、無料の公式練習問題集

1.AWS認定資格試験テキスト AWS認定クラウドプラクティショナー

本書でAWSクラウドの全体像を理解するために、1週間で1周くらいのペースで読み進めました。
書籍の内容はわかりやすいですし、資格取得後も読み返したりできる思います。
用語が多いので、ノートにまとめるなどで学習することをおすすめします。
私は1カ月で5周ほど読みました。

※注意点:AWS経験がない方だとこのテキストだけの学習では、不合格になる可能性があると感じました。問題数が少ないため、私の場合はアウトプットが足りなかったです。
Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)とあわせて学習することをおすすめします

2.Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)

実際にAWSアカウント(無料枠)を作成して、ハンズオンで学習できるので、AWSクラウドのイメージがつきやすいです。
また、問題が充実しているので、問題集としても使えます。(項目ごとの小テストと模擬テストが2回分ついています)


私は試験前の数日間は小テストと模擬テストばかりをひたすら解いて、知識を定着させました。「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を読んで理解したと思っていても、いざ問題となると全然わからずにとても焦りました。

デメリットとしては、結構ボリュームが多く学習時間がかかります。あと、内容が一部冗長的な気もしました。
私は時間の関係で本教材は半分ほどしか進められず、試験前に問題集として小テストと模擬テストをひたすらやりました。
試験後に残りの部分を勉強して理解しようと思ってます。

f:id:auroralights:20220320224335p:plain


3.AWS公式サイトのサンプル問題、無料の公式練習問題集

AWS公式サイトのページ下部にあるサンプル問題と公式練習問題集を解きました。
aws.amazon.com
f:id:auroralights:20220320225702p:plain


試験結果

738点で合格。
体感ではもう少し余裕をもって合格できたと思っていたのですが、結構ぎりぎりでしたね。

AWS認定クラウドプラクティショナー試験の結果レポート
AWS認定クラウドプラクティショナー試験の結果レポート

以下の通り、『請求と料金』の項目の理解が全然足りてませんでした。分野ごとの足切り点がなくて本当に良かったです。
f:id:auroralights:20220320230750p:plain


AWS認定クラウドプラクティショナーの感想

AWSの基礎的な試験となり、難易度は簡単な部類ではあるのですが、しっかりと学習しないと落ちます。

私自身、今回、「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を5度ほど読んで、理解したと余裕を感じていました。
しかし、試験数日前にUdemyの模擬問題を全然解けないことに気が付き、あわててUdemyの問題をたくさん解き、なんとか合格できました。
問題を解いてアウトプットするのは大事ですね。

AWSクラウドの基礎的な部分を効率よく学習できたかと思いました。業務で直接AWSに触れることは少ないのですが、今年中にAWS認定ソリューションアーキテクトを取得したいと思います。

以上、お読みいただきありがとうございました。

【Excel VBA】再帰呼出しで最大公約数を求める(ユークリッドの互除法)

プログラムが自分自身を呼び出す処理のことを「再帰呼出し」といいます。
今回は再帰呼出しを使って、2つの数の最大公約数を求める方法を解説します。
最大公約数を求めるために、今回は『ユークリッドの互除法』と呼ばれるアルゴリズムを使います。

再帰呼出しの解説は以下の記事も参照ください。
auroralights.jp


最大公約数を求めるのVBAコード

以下は「48」と「20」の最大公約数を求めるVBAコードです。

Sub sampleCall()
    MsgBox sampleGcd(48, 20)
End Sub

Function sampleGcd(ByVal m As Long, ByVal n As Long) As Long
    If n = 0 Then
        sampleGcd = m
    Else
        sampleGcd = sampleGcd(n, m Mod n)
    End If
End Function

※Sub sampleCall内のMsgBox sampleGcd(48, 20)の()内の数字「48,20」を任意の2つの数字に変えると、その数字の最大公約数を求めることができます。


処理を考える

上記の最大公約数を求めるVBAの処理を見ていきます。

f:id:auroralights:20220319005619p:plain
再帰呼出し

1~2行目:Subプロシージャ「sampleCall」からFunctionプロシージャ「sampleGcd」を呼び出し、引数48と20を渡します。
5行目:48を「m」、20を「n」に格納します。
6行目:IF文の条件分岐です。n = 0ではないので、9行目に移ります。
9行目:Functionプロシージャ「sampleGcd」を再帰呼出し、その際に「n」と「m mod n (mをnで除算した余り)」を引数として渡します。
5行目:渡された引数「n」を「m」、「m mod n」を「n」に格納します。

以降は「n」が「0」になるまで、再帰呼出しでFunctionプロシージャ「sampleGcd」の処理を繰り返します。「n」が「0」になった時点の「m」を返り値として、Functionプロシージャ「sampleGcd」から呼び出し元のSubプロシージャ「sampleCall」に渡し、メッセージボックスに表示して処理を終えます。

引数「m」と「n」の変化

f:id:auroralights:20220319013041p:plain

f:id:auroralights:20220319013701p:plain


参考情報:ユークリッドの互除法、最大公約数、GCD関数

ユークリッドの互除法

ユークリッドの互除法は、2つの自然数a、bの最大公約数を求める方法です。(詳細な内容は難しいので割愛します)

1.「a」を「b」で割る。余り「r」を求める
2.「b」を1.で求めた「r」で割る。その余り「r1」を求める
3.「r」を2.で求めた「r1」で割る、その余り「r2」を求める
4.「r1」を3.で求めた「r2」で割る、その余り「r3」を求める
・・・・
余りが「0」になる(割り切れる)まで繰り返します。(必ず割り切れます)
余りが「0」になったときの割る数が最大公約数になります。

以下は500と75の最大公約数を求め方です。
f:id:auroralights:20220319043847p:plain

最大公約数

2つ以上の数を割り切る数の中で、共通している数かつ、最も大きい数を最大公約数といいます。
最大公約数を理解するには、約数、公約数を理解する必要があります。

  • 約数:ある1つの正の整数を割り切る数
  • 公約数:2つ以上の正の整数に共通な約数
  • 最大公約数:公約数の中で一番大きな数

以下画像では10と12の最大公約数を考えています。

f:id:auroralights:20220316235452p:plain
約数・公約数・最大公約数

GCD関数

Excelのワークシート関数『GCD関数』を使うと、最大公約数を求めることができます。

■GCD関数の書式
=GCD(数値1,数値2[,・・・・・,数値255])

GCD関数の利用例(=GCD(C2:D2)と引数にセル範囲を指定)
f:id:auroralights:20220317212958p:plain



お読みいただきありがとうございました。