5/31/2020

Excel。ガントチャートで期間の「始点~終点」を見出しから抽出してつくりたい。【Gantt chart】

Excel。ガントチャートで期間の「始点~終点」を見出しから抽出してつくりたい。

<ガントチャート:INDEX+MATCH関数>

スケジュール期間をわかりやすく管理するガントチャートという表があります。

作業Aは、6月1日に最初の○があるので、B列は、6/1~と表示され、6月3日に最後の○があるので、6/3と判断した結果、B2には、「6/1~6/3」と自動的に算出し表示しています。

今回は、この期間の作り方を紹介していきます。

どうしたら、最初の「○」がある日付を抽出することができるのかを考えていきましょう。

C1:G2までの表で考えるとわかりやすくなります。

日付がある行は、1行だけなので、行数は1で、列は、5列ある表。

つまり、1行5列の表の中から、最初の「○」がある6月1日を抽出させるには、6月1日は、1行1列のデータを抽出すればいいわけです。

このような、行と列から抽出する時には、INDEX関数を使うことで算出することができます。

問題は、最初の「○」が1列目で、最後の「○」は3列目にありますが、この1とか3をどうやって計算させればいいのでしょうか?

何番目に「○」があるのか?

このような時には、MATCH関数を使うことで算出することができます。

B2をクリックして、数式をつくっていきます。

INDEX関数は、2種類選べる関数になっているので、手入力の方がわかりやすいかと思いますので、手入力でつくることをお勧めします。

B2の数式は、
=INDEX($C$1:$G$1,1,MATCH("○",C2:G2,0))

2020/6/1という算出結果がでました。結果がシリアル値の場合は、日付型に変更しましょう。

この計算式について説明します。

INDEX関数は、INDEX(配列,行番号,列番号)という引数をもっていますので、
配列には、$C$1:$G$1 を設定します。

オートフィルで数式をコピーすることを考慮して、絶対参照も合わせて設定しておきます。

行番号は、1行なので、1。
列番号は、最初の「○」がある場所の数値ですが、この数値をMATCH関数で算出します。

MATCH関数を確認します。
MATCH関数は、MATCH(検索値,検索範囲[,照合の種類])という引数を持っています。

検索値には、「○」。
検索範囲には、C2:G2。

照合の種類ですが、0を設定します。0は、完全一致する値を算出します。

また、最初に登場する値を算出することができます。

よって、0を設定することで、「1」を得ることができるというわけです。

なお、「0」の代わりに「-1」にすると、検索値の中で最小値を算出してくれるので、「-1」でもかまいません。

このように、INDEX関数とMATCH関数を組み合わせることで、抽出することができます。

この数式を、「~」で挟む数式に修正していきます。

=INDEX($C$1:$G$1,1,MATCH("○",C2:G2,0))&"~"&INDEX($C$1:$G$1,1,MATCH("○",C2:G2,1))

ちょっと、長くなりましたが、「&"~"&」で始点の見出しの日付から終点の見出しの日付までという形で表示することができます。

ただ、表示形式が解けてしまうので、シリアル値で表示されてしまっています。

日付に表示形式を変更したいのですが、文字結合していることもあって、通常の表示形式の変更ではかわりませんので、TEXT関数をつかってあげる必要があります。

よって、最終的な数式は、
=TEXT(INDEX($C$1:$G$1,1,MATCH("○",C2:G2,0)),"m/d")&"~"&TEXT(INDEX($C$1:$G$1,1,MATCH("○",C2:G2,1)),"m/d")

とさらに長くなってしまいましたが、オートフィルで数式をコピーして完成です。

ちょっと長い数式ではありますが、作業工程に変化があった場合でも、この表の場合だと、「○」を追加削除するだけで、期間がオートマチックに連動して変更することができるので、ミスが抑制できるかもしれませんね。

5/30/2020

Excel Technique_BLOG Categoryに追加しました。2020/5/30

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

このBLOGの記事を、
カテゴリー分けにした【Excel Technique_BLOG Category】に追加しました。

Excel。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る

入力規則のリストからアイテムを選択できるようにしたいけど、項目名によって選択できるアイテムがかわるのでどうしたらいいの?

<続きはこちら>
Excel。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る
https://infoyandssblog.blogspot.com/2015/05/excelindeirectindirect.html


Excel。2列1組で色分けしたい時にはどうするの?というリクエストがあって

2行1組じゃなくて、2列1組でやることはできるのかなぁ~

<続きはこちら>
Excel。2列1組で色分けしたい時にはどうするの?というリクエストがあって
https://infoyandssblog.blogspot.com/2015/05/excelmod.html


Excel。表を行列入れ替えてして、さらにリンクさせる方法はないですか?だって。

行列を入れ替えてコピーするだけではなくて、表のデータを変更したら、別シートの数値もリンクされたように変わってほしい

<続きはこちら>
Excel。表を行列入れ替えてして、さらにリンクさせる方法はないですか?だって。
https://infoyandssblog.blogspot.com/2015/06/exceltranspose.html


Excel。めざせ!100万円。PMT関数を勉強するならゴールシークも一緒にね。

PMT関数とゴールシークを使って、100万円を目標にして積み立てるとして、月額いくら積み立てたとしたら、頭金はいくらあればいいのか?

<続きはこちら>
Excel。めざせ!100万円。PMT関数を勉強するならゴールシークも一緒にね。
https://infoyandssblog.blogspot.com/2015/06/excelpmt100pmt.html


5/28/2020

Excel。散布図に追加できる近似曲線の式と数値は何?【Scatter plot】

Excel。散布図に追加できる近似曲線の式と数値は何?

<回帰分析:CORREL・SLOPE・INTERCEPT関数>

「散布図」はデータの分布状況を確認することができるグラフなのですが、散布図に『近似曲線』を追加することができる機能があるのですが、この表示される近似曲線について確認していきましょう。

次のデータを使って、散布図をつくっていきます。

C1:D11を範囲選択して、挿入タブの散布図またはバブルチャートの挿入にある、「散布図」を選択します。

すると、散布図が表示されました。今回はグラフを大きく表示したいので、グラフタイトルは削除しておきます。

この散布図に、近似曲線を追加設定します。

グラフのデザインタブのグラフの要素の追加にある「近似曲線」のその他の近似曲線オプションをクリックします。

近似曲線の書式設定作業ウィンドウが表示されます。今回は、線形近似にします。

近似曲線のオプションにある「グラフに数式を表示する」にチェックマークをいれます。

すると、散布図に、線形近似が表示され、グラフに数式が表示されました。
近似曲線付き散布図

今回は、表示された数式がわかりやすいように、フォントサイズや色を調整しております。

表示された数式。y = 2.2822x + 49.304 はどう見たらいいのでしょうか?
この数式は、y=ax+b なので、いわゆる「回帰直線」ということですね。

回帰分析を行うことができる数式というわけです。

aは2.2822で、「傾き」を表しています。bの49.304が「切片」ですね。

例えば、フロアを200にしたら、売上高はどのぐらいになるのか?という予測をすることができるわけです。

=2.2822×200+49.304 で、505.744 という売上高の予測を算出することができるわけです。

散布図をつくるならば、この近似曲線と数式も合わせて表示して使いたいところですね。

なお、aの「傾き」とbの「切片」ですが、Excelには関数が用意されていますので、それぞれ簡単に算出することができます。

傾きを算出するのが、SLOPE関数です。

G1にSLOPE関数ダイアログボックスを表示して算出してみます。

既知のyには、D2:D11。
既知のxには、C2:C11。

あとは、OKボタンをクリックします。
G1の数式は、
=SLOPE(D2:D11,C2:C11)


G2に「切片」を算出してみますので、切片を算出するための関数は、INTERCEPT関数です。

INTERCEPT関数ダイアログボックスを表示して設定していきます。

既知のyには、D2:D11。
既知のxには、C2:C11。

あとは、OKボタンをクリックします。
G2の数式は、
=INTERCEPT(D2:D11,C2:C11)

それぞれの算出結果を確認してみましょう。

近似曲線に表示した数式の「傾き」と「切片」は合致していますので、「回帰式」を作る場合には、散布図をどうしても作る必要はありません。

ただ注意しないといけないのは、「相関関係」も算出しておく必要があります。
関連性のない数値どうしで算出しても意味がありません。

G4にCORREL関数をつかって相関関係を算出しておきましょう。

G4をクリックして、CORREL関数ダイアログボックスを表示します。

配列1には、C2:C11。
配列2には、D2:D11。

あとは、OKボタンをクリックします。
G4の数式は、
=CORREL(C2:C11,D2:D11)

算出結果を確認してみましょう。

0.942345と算出されました。

相関関係は、1に近づくと関係性が強いという意味なので、フロア面積と売上高には関係性が強いということがわかりました。

このように、散布図の近似曲線から、回帰分析までと、今までの資料にプラスアルファ出来るかもしれませんので、色々確認してみるといいかもしれませんね。

5/27/2020

Excel関数辞典 VOL.30。FORECAST関数~FORECAST.LINEAR関数

Excel関数辞典 VOL.30。FORECAST関数~FORECAST.LINEAR関数

<Excel関数>

今回は、FORECAST関数~FORECAST.LINEAR関数までをご紹介しております。

FORECAST関数
フォーキャスト
直線回帰分析による値を算出する
FORECAST(x,既知のy,既知のx)


FORECAST.ETS関数
フォーキャスト・イーティーエス
実績から予測値を算出
FORECAST.ETS(目標期日,値,タイムライン,[季節性],[データ補間],[集計])
※Excel2016の「予測ワークシート」で「予測値列」の算出に使用


FORECAST.ETS.CONFINT関数
フォーキャスト・イーティーエス・コンフィデンスインターバル
予測値の信頼区間を算出する
FORECAST.ETS.CONFIN(目標期日,値,タイムライン,[信頼レベル],[季節性],[データ補間],[集計])


FORECAST.ETS.SEASONALITY関数
フォーキャスト・イーティーエス・シーズナリティ
指定した時系列の季節パターンの長さを算出する
予測値の信頼区間を算出する
FORECAST.ETS.SEASONALITY(値,タイムライン[,データ補間][,集計])


FORECAST.ETS.STAT関数
フォーキャスト・イーティーエス・スタット
時系列予測から統計情報を算出
FORECAST.ETS.STAT(値,タイムライン,統計の種類,[季節性],[データ補間],[集計])


FORECAST.LINEAR関数
フォーキャスト・リニア
直線回帰分析による値を算出する Excel2016以降
FORECAST.LINEAR(x,既知のy,既知のx)

5/25/2020

Excel。3-D積み上げ縦棒グラフの系列ごとに境界線をいれて見栄えUP【Graph border】

Excel。3-D積み上げ縦棒グラフの系列ごとに境界線をいれて見栄えUP

<3-D積み上げ縦棒グラフ>

3-D積み上げ縦棒グラフは、アピールしやすい資料のオブジェクトとして使われるのですが、意外と系列どうしの境界線にメリハリがなく、わかりにくいという欠点があります。

これを次のようにしたいわけです。
3-D積み上げ縦棒グラフの境界線強調

枠線を太くして、白色にすればいいのでは?と考えますが、そう簡単にいかないのです。

では、枠線を太くしてみましょう。

実は、枠線の色と太さは、枠線なので、側面の線も対象になってしまい、上下だけに設定したいということはできないのです。

そこで、アイディアが必要になるわけです。

では、次のような表を用意します。

ダミーの列はなんなのかというと、これが、境界線にかわります。

なので、数値を上下することで線の太さを変更することができる仕組みです。

また、G列の合計値は、C列E列のダミーは除いた合算数です。今回は直接使用しませんが、縦軸の最高値を知るために用意しておくと、便利です。

では、ダミー列も含めたA1:F4までを範囲選択して、3-D積み上げ縦棒グラフをつくっていきます。

挿入タブの縦棒/横棒グラフの挿入にある、「3-D積み上げ縦棒」をクリックします。

3-D積み上げ縦棒が表示されました。

今回はグラフを大きくして紹介したいので、グラフタイトルと凡例は削除して、適度な大きさに変更しております。

店舗ごとに比較したいので、グラフのデザインタブの「行/列の切り替え」をクリックします。

今回は修正する必要がありませんが、縦軸の最高値がダミーを除いた合算値と大きく異なる場合や見た目で違和感がある時には、最高値を修正するといいでしょう。

あとは、ダミーのデータをクリックして、塗りつぶしを「白色」などに変更していきます。

グラフの書式タブにある「図形の塗りつぶし」と「図形の枠線」の両方とも今回は「白色」で設定します。

グラフはこのように変更されています。

あとは、フォントサイズを調整して完成です。ダミー列を使うことで、境界線をハッキリさせることができます。

最後に、余談ですが、書式タブの「図形の効果」にある面取りの「丸」をつかうことで、ソフトな3-D積み上げ縦棒に変更することもできます。

設定を反映すると3-D積み上げ縦棒はこのように変わりました。
3-D積み上げ縦棒グラフの境界線強調

3-D積み上げ縦棒グラフは、なかなかアレンジが大変なところもありますが、様々なアイディアを加えていくと面白いグラフを作ることができるかもしれませんね。

5/24/2020

今週のFacebookページの投稿 2020/5/18-2020/5/24

今週のFacebookページの投稿 2020/5/18-2020/5/24

<Facebookページ>

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

5月18日
Excel。FISHERINV関数。
読み方は、フィッシャーインバースで、フィッシャー変換の逆関数の値を算出

5月19日
Excel。FIXED関数。
読み方は、フィクストで、数値を四捨五入してカンマを使った文字列に変換する

5月20日
Excel。FLOOR関数。
読み方は、フロアで、指定した数値の倍数に切り捨てる

5月21日
Excel。FLOOR.MATH関数。
読み方は、フロア・マスで、指定した数値の倍数に切り捨てる

5月22日
Excel。FLOOR.PRECISE関数。
読み方は、フロア・プリサイズで、指定した数値の倍数に切り捨てる

5月23日
Excel。FORECAST関数。
読み方は、フォーキャストで、直線回帰分析による値を算出する

5月24日
Excel。FORECAST.ETS関数。
読み方は、フォーキャスト・イーティーエスで、実績から予測値を算出

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

5/22/2020

Excel VBA。インポートした8桁の数値を日付に戻すにはどうしたらいいの?【Date】

Excel VBA。インポートした8桁の数値を日付に戻すにはどうしたらいいの?

<Excel VBA>

CSVファイルやテキストファイルを読み込んだら、日付と思っていたデータが8桁の数値でインポートされていました。

次のような状態です。

今回は、この8桁の数値をB列には、「/(スラッシュ)」で区切った年月日で表示するのと、C列には、年月日で日付を表示するようにExcel VBAでプログラム文をつくっていきます。

Sub 八桁数値を日付()
    Dim i As Integer
    Dim row_count As Integer
 
    Dim nen As String
    Dim tuki As String
    Dim niti As String
   
    row_count = Range("A1").End(xlDown).Row

    For i = 2 To row_count
        nen = Mid(Cells(i, "a"), 1, 4)
        tuki = Mid(Cells(i, "a"), 5, 2)
        niti = Mid(Cells(i, "a"), 7, 2)
           
        Cells(i, "b") = nen & "/" & tuki & "/" & niti
        Cells(i, "c") = nen & "/" & tuki & "/" & niti
        Cells(i, "c").NumberFormatLocal = "yyyy年m月d日"
    Next
End Sub

上記のようにプログラム文を作ってみました。

とりあえず、実行して確認してみましょう。

このように、B列には、「/(スラッシュ)」で区切った年月日で表示する日付に変更することができました。

C列には、年月日で日付を表示することができました。

では、プログラム文を細かく確認していきましょう。
最初は、変数の宣言文ですね。
    Dim i As Integer
    Dim row_count As Integer
 
    Dim nen As String
    Dim tuki As String
    Dim niti As String

変数のiとrow_countは数値なので、Integerで宣言しています。
変数のnen と tuki と niti には、文字に関連しますので、Stringで宣言しています。

Yearとかでもいいのですが、関数とごちゃごちゃしそうなので、ワザと、nenにしました。

データの最終行まで繰り返すために最終行の行数をrow_countに代入しているのが次の行ですね。

row_count = Range("A1").End(xlDown).Row

For To Next文で、繰り返し処理を行います。
For i = 2 To row_count ~ Next

nen = Mid(Cells(i, "a"), 1, 4)
tuki = Mid(Cells(i, "a"), 5, 2)
niti = Mid(Cells(i, "a"), 7, 2)

この3行は、変数に、それぞれ、年・月・日に該当する数値を代入させる処理をしています。

Mid関数は、文字列の開始から指定した文字数を抽出する関数です。
例えば、
nen = Mid(Cells(i, "a"), 1, 4)
は、A列のデータの1文字目から、4文字分をnenという変数に代入するという意味になります。

tukiは、5文字目から2文字分を抽出しています。

当然、nenは左から4文字ということで、
nen = Left(Cells(i, "a"), 4) とLeft関数を使っても問題はありませんし、日もRight関数をつかってもOKです。

あとは、それぞれの変数を「/(スラッシュ)」をつかって文字結合してあれば、8桁の数値を日付に変更することができます。

Cells(i, "b") = nen & "/" & tuki & "/" & niti

文字の結合は、お馴染みの「&(アンパサンド)」を使って結合します。

また、年月日で日付を表示するならば、表示形式のプロパティを使う必要が生じるので、
Cells(i, "c") = nen & "/" & tuki & "/" & niti

日付にしたあとに、NumberFormatLocalプロパティをつかって、年月日の表示形式に変更します。

Cells(i, "c").NumberFormatLocal = "yyyy年m月d日"

このように、読み込んだデータが、日付は日付でインポートしてくれるとは限りませんので、色々対応できるようにしていくといいかもしれませんね。

5/21/2020

Excel。グラフの復習。ステップ横棒グラフ~積み上げ縦棒グラフに合計値を表示【Graph】

Excel。グラフの復習。ステップ横棒グラフ~積み上げ縦棒グラフに合計値を表示

<グラフ>

Excelのグラフは、用途に合わせて様々なグラフを作ることができます。
今回は、グラフの復習ということ、4つをピックアップ

・Excel。工程を把握しやすいステップ横棒グラフを作るには?
・Excel。折れ線グラフを交点0から描くにはどうしたらいいの?
・Excel。100%積み上げ横棒絵グラフを作るには?
・Excel。積み上げ縦棒グラフに合計値を表示させる方法。

Excel。工程を把握しやすいステップ横棒グラフを作るには?

ガントチャートなどスケジュールを把握するために、様々なグラフをつかって管理しますが、各プロジェクトの流れを階段状に表現できる『ステップ横棒グラフ』の作成方法を今回はご紹介していきます。
ステップ横棒グラフ


<続きはこちら>
Excel。工程を把握しやすいステップ横棒グラフを作るには?
https://infoyandssblog.blogspot.com/2017/04/excelgraph.html

Excel。折れ線グラフを交点0から描くにはどうしたらいいの?

X軸Y軸0(ゼロ)。つまり交点0(ゼロ)からグラフを描く方法をご紹介していきましょう
折れ線グラフを交点0


<続きはこちら>
Excel。折れ線グラフを交点0から描くにはどうしたらいいの?
https://infoyandssblog.blogspot.com/2017/04/excel0excel2013line-graph.html

Excel。100%積み上げ横棒絵グラフを作るには?

絵グラフは絵グラフでも、100%積み上げ横棒グラフの絵グラフ。
100%積み上げ横棒絵グラフ

<続きはこちら>
Excel。100%積み上げ横棒絵グラフを作るには?
https://infoyandssblog.blogspot.com/2017/04/excel100picture-graph.html


Excel。積み上げ縦棒グラフに合計値を表示させる方法。

積み上げ縦棒グラフの上に表示されている。【合計値】を表示させることなのです。
積み上げ縦棒グラフに合計値


<続きはこちら>
Excel。積み上げ縦棒グラフに合計値を表示させる方法。
https://infoyandssblog.blogspot.com/2017/05/excelexcel2013-column-chart.html

5/19/2020

Excel。SUMIF関数で検索条件が部分一致の時には、ワイルドカードで対応します。【Wildcard】

Excel。SUMIF関数で検索条件が部分一致の時には、ワイルドカードで対応します。

<SUMIF関数>

様々な関数がExcelには用意されていて、便利な関数も多いのですが、その関数を使いたくても、表の方が、対応していない作り方だと、シンプルに関数を使うことができないケースがあります。

次の表がそのパターンの一つです。

この表を基にラーメン類の集計と定食類の集計をおこなうとします。

表をみると、カテゴリーの列がありません。

カテゴリーの列が用意されていて、その列に「ラーメン」や「定食」というデータが入力されていれば、そのカテゴリーを使って、SUMIF関数を使って、集計することができるはずです。

ただ、残念ながら今回の表には、カテゴリーのようなデータがある行がありません。

このような表の場合、どのようにしたらいいのでしょうか?

考え方としては、単一条件で合算値を算出したい場合に使用する「SUMIF関数」は使うのですが、検索条件と一致しないと算出することができません。

今回は、醤油ラーメンもあれば味噌ラーメンもあります。

そこで、『ワイルドカード』を組み合わせて使うことで、カテゴリーの列がなくても集計することができます。

H2にSUMIF関数ダイアログボックスを表示します。

範囲には、$B$2:$B$11と設定します。オートフィルで数式をコピーするので、絶対参照も合わせて設定します。

なお、SUMIF関数で、この範囲が理解しにくいところですね。

この範囲は、次の検索条件のデータがある範囲という意味の範囲です。

検索条件ですが、ここをラーメンとか定食と入力しても、検索することができないので、ワイルドカードを使う必要があります。

なので、"*"&G2

今回は、幸いにして、「~ラーメン」「~定食」とそのコトバで終了する商品名だけなので、ワイルドカードの「*(アスタリスク)」を前に設定することで対応できます。

仮に、"*"&G2&”*”と前後に「*(アスタリスク)」で囲ってしまうと、「ラーメン定食」も対象になってしまうので、注意が必要です。

また、「冷やし中華」のように「ラーメン」という文字がない場合は、検索することができませんので、数式をアレンジする必要が発生します。

合計範囲には、$E$2:$E$11と設定します。

こちらも、オートフィルで数式をコピーしますので、絶対参照を設定しておきます。

あとは、OKボタンをクリックして、オートフィルで数式をコピーして確認してみましょう。

なお、H2の数式は、
=SUMIF($B$2:$B$11,"*"&G2,$E$2:$E$11)

ご覧のように、カテゴリーの列がなくても、ワイルドカードを使用することで、カテゴリーごとに集計することができましたが、今回のように、「~ラーメン」「~定食」というように固定されたパターンとは限らないと思われますので、カテゴリーのような列をつくることを管理運営上、お勧めします。

5/18/2020

今週のFacebookページの投稿 2020/5/11-2020/5/17

今週のFacebookページの投稿 2020/5/11-2020/5/17

<Facebookページ>

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

5月11日
Excel。FILTERXML関数。
読み方は、フィルターエックスエムエルで、Webサービスからのデータを返す

5月12日
Excel。FIND関数。
読み方は、ファインドで、検索する文字列の位置を算出する

5月13日
Excel。FINDB関数。
読み方は、ファインドビーで、検索する文字列の位置をバイト数で算出する

5月14日
Excel。FINV関数。
読み方は、エフインバースで、F分布の上側確率から確率変数を算出する

5月15日
Excel。F.INV関数。
読み方は、エフ・インバースで、F分布の下側確率から確率変数を算出する Excel2010以降

5月16日
Excel。F.INV.RT関数。
読み方は、エフ・インバース・ライトテールで、F分布の上側確率から確率変数を算出する Excel2010以降

5月17日
Excel。FISHER関数。
読み方は、フィッシャーで、フィッシャー変換の値を算出

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

5/16/2020

Excel。決まった場所にハイフンなどの文字を割り込ます(追加)方法を確認してみよう。【interrupt】

Excel。決まった場所にハイフンなどの文字を割り込ます(追加)方法を確認してみよう。

<MID関数>

CSVファイルやTEXTファイルをExcelに読み込んだあとに、データを修正したいことは多々あります。

例えば、次のようなケース。

郵便番号のフィールドが、ハイフンがなかったので、7ケタの数値で読み込んでいます。

このままでも支障はないのかもしれませんが、3桁と4桁の間に「-(ハイフン)」をいれて郵便番号と見てわかるように、変更したいのが、今回の目的です。

件数が少なければ、自力で「-(ハイフン)」を入力していくというのアリなのかもしれませんが、時間がかかりますし、面倒です。

文字をコントロールする時に考えるのは、文字列の左側からか、右側からなのか?それとも、文字列の中間なのかによって、使う関数が異なってきます。

今回は、左から3文字目と4文字目の間に「-(ハイフン)」を入れたいので、MID関数を使うことで、解決することができます。

B2に数式を設定します。
=MID(A2,1,3)&"-"&MID(A2,4,4)

オートフィルで数式をコピーしてみましょう。

「-(ハイフン)」を文字列に挿入することができました。

確かに目的は達成したのですが、MID関数を2回使っており、数式がわかりにくいので、REPLACE関数をつかうことで、もっとシンプルに同じことを行うことができます。

B列を削除して、改めて、REPLACE関数を使って数式を作っていきますので、REPLACE関数ダイアログボックスを表示します。

文字列には、A2。
開始位置には、4。
これは、4文字目のところに「-(ハイフン)」をいれたいので、4と設定します。

文字数には、「0」。
1にすると、4文字目から1文字目の文字を次の置換文字列と置換するという処理のための引数です。

今回は、文字と置換するのではなく、そこに挿入したいわけですよね。
文字と文字の間に割り込ます場合は、文字列を0にすればいいわけです。

REPLACE関数は、置換する関数というイメージがあるので、なかなか、文字を割り込ます・追加するこの発想は浮かびませんね。

そして、置換文字列は、「-(ハイフン)」を設定します。
あとは、OKボタンをクリックして、オートフィルで数式をコピーしてみましょう。

なお、B2の数式は、
=REPLACE(A2,4,0,"-")

確認してもらうと、先程のMID関数同様に、「-(ハイフン)」を3文字目と4文字目の間に追加することができました。

REPLACE関数のほうがMID関数よりも馴染みが薄いかもしれませんが、知っておくといざという時に便利な関数かもしれませんね。

なお、MID関数であれ、REPLACE関数であれ、注意しないといけないのは、今回のデータは、全部のデータに「-(ハイフン)」が入っていなかったということです。

「-(ハイフン)」があったりなかったりすると、当然、条件分岐が必要になってきます。

5/15/2020

Excel Technique_BLOG Categoryに追加しました。2020/5/15

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

このBLOGの記事を、
カテゴリー分けにした【Excel Technique_BLOG Category】に追加しました。

Excel。指定した順位までの構成比を算出したいというリクエスト

指定した順位までの売上の構成比を求める表を作成してみましょう。

<続きはこちら>
Excel。指定した順位までの構成比を算出したいというリクエスト
https://infoyandssblog.blogspot.com/2015/05/excelrankeq.html



Excel。アンケートの複数回答の集計を効率よく算出する方法 COUNTIF編

COUNTIF関数とワイルドカードを使う方法をご紹介

<続きはこちら>
Excel。アンケートの複数回答の集計を効率よく算出する方法 COUNTIF編
https://infoyandssblog.blogspot.com/2015/05/excelquestionnairecountif.html



Excel。アンケートの複数回答の集計を効率よく算出する方法 SUMIF編

SUMIF関数での集計方法使う方法をご紹介

<続きはこちら>
Excel。アンケートの複数回答の集計を効率よく算出する方法 SUMIF編



Excel。1行おきの塗りつぶしじゃなくて、2行1組で塗りつぶすには?

2行1組で塗りつぶす方法をご紹介

<続きはこちら>
Excel。1行おきの塗りつぶしじゃなくて、2行1組で塗りつぶすには?