3/14/2020

Excel。Wordの差し込み印刷でつかうと表示形式が消えてしまうのでどうにかしたい【Mail Merge】

Excel。Wordの差し込み印刷でつかうと表示形式が消えてしまうのでどうにかしたい

<TEXT関数とWord>

Wordの機能に【差し込み印刷】というのがあります。

差し込むファイルによく、Excelファイルを使うのですが、差し込んだ後に思ったように表示してくれないことがあります。

その場合の対処方法を紹介していきます。

使用するExcelファイルから確認をしましょう。

C列の金額は、数量と単価を乗算した数式。
=A2*B2
を設定しています。

D列の数値は、単純に、数値を入力した列です。

E列の表示形式は、直接入力した数値に、三桁区切りのスタイル(表示形式)を設定してあります。

F列は、表示形式を設定するのではなく、TEXT関数を使って、表示形式を変更しています。

F2の数式は、
=TEXT(C2,"#,##0")
結果は、E列と同様に三桁区切りのスタイルが設定されます。

ただし、算出された結果は、文字型の数値になっているので、左揃えで表示されています。

これだとおかしいので、文字型を数値型に戻したのが、G列。
G2の数式は、
=TEXT(D2,"#,##0")*1
×1することで、文字型数値を数値型に変更することができます。

H列は、数値以外だけでないことを確認したいので、日付を入力してあります。

I列は、先程のF列同様に、TEXT関数をつかって算出しました。
I2の数式は、
=TEXT(H2,"yyyy/m/d")

このExcelをつかって、Wordで差し込み印刷を行った場合どうなるのかを確認してみましょう。

【Wordで差し込み印刷】

次のように、Wordの差し込み文書タブを使って差し込み印刷の設定を行っていきます。

差し込みフィールドの挿入まで完成していますので、Wordの差し込み文書タブにある「結果のプレビュー」をクリックして、どのように表示されるのかを確認してみましょう。

注目するのは、表示形式です。

TEXT関数を使っていないところは、Excelと同じ表示形式になっていません。

数値は、入力した場合と同じ状態になっていますし、日付は、月・日・年というように、米国式で表示されています。

差し込み印刷では、文字を差し込むならば、気にしなくてもいいのですが、このように表示形式が設定されている、関係している場合には、TEXT関数を使う必要があります。

また、アレンジのように、文字型数値を数値型に戻してしまうと、やはり、数値ということで、表示形式が取れてしまいます。

では、ExcelでTEXT関数をやらない場合、つまり、Wordではコントロールすることは出来ないのでしょうか?

【Wordでの対応方法】

Wordに差し込んだ後に、表示形式を変更したい場合には、
結果のプレビューを解除してから、
Alt+F9キーを押して、フィールドコードを表示させます。

MERGEFIELD 表示形式をMERGEFIELD 表示形式 ¥# 0,
と、追記します。

Alt+F9キーで元に戻して、結果のプレビューで確認してみましょう。

カンマ区切りスタイルで表示されていることが確認できますね。

このように、フィールドコードを追記する形をとれば、対応することができます。

数値フィールドは、『¥# スイッチ』で指定してあげると対応します。

「¥# ¥¥0,」とすれば円マーク付きにすることができますし、「¥# “0,円”」とすれば、~円と表示することができます。

【日付はこうすると対応可能です】

では、日付はどうしたらいいのでしょうか?

日付フィールドは、「¥@ スイッチ」で対応します。

ここでポイントになるのは、月のところが、大文字の「M」でないとダメということです。小文字の「m」にすると表示されません。

それ以外は、Excelと同じ表示形式で対応していますので、差し込み印刷で、元号表示にしたい場合には、
「¥@ “ggge年M月d日”」
と設定すれば、元号表示にすることができます。

では、結果のプレビューで確認してみましょう。

このように、差し込み印刷では表示形式に問題が発生しますので、対応する必要があります。

3/13/2020

Excel Technique_BLOG Categoryに追加しました。2020/3/13

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

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

Excel。セル内で改行するにはAlt + Enterだけど沢山あるときはCHAR(10)がお勧め

CHAR関数は、コンピューターの文字セットから、そのコード番号に対応する文字を算出します。そこで、CHAR(10)とすると、これがAlt + Enterと同じセル内の改行の文字コードなのです。

<続きはこちら>
Excel。セル内で改行するにはAlt + Enterだけど沢山あるときはCHAR(10)がお勧め
https://infoyandssblog.blogspot.com/2015/03/excelchar10alt-enterchar10.html


Excel。お客の年齢階層別ピラミッドグラフを条件付き書式でつくってみる。

ピラミッドグラフの作り方ですが、グラフで作る必要が無いとした場合、条件付き書式のデータバーを使うともっと簡単に作ることが出来るのです。

<続きはこちら>
Excel。お客の年齢階層別ピラミッドグラフを条件付き書式でつくってみる。
https://infoyandssblog.blogspot.com/2015/03/excelpyramidgraph.html

おすすめグラフで、グラフを作るのが簡単になりすぎ。ピラミッドはこう作ります。

おすすめグラフ】で縦棒グラフ作成して、縦棒グラフから消えてしまった、ピラミッドグラフの作り方を紹介しようと思います。
ピラミッドグラフ


<続きはこちら>
おすすめグラフで、グラフを作るのが簡単になりすぎ。ピラミッドはこう作ります。
https://infoyandssblog.blogspot.com/2015/04/excel2013graph.html


ExcelでABC分析パレート図をつくってみよう

ABC分析の表をつかって、パレート図を作ってみようと思います。
パレート図

<続きはこちら>
ExcelでABC分析パレート図をつくってみよう
https://infoyandssblog.blogspot.com/2015/04/excel2013excel2013abc.html

3/11/2020

Excel。鍵穴円グラフをつくるには、円グラフとドーナツグラフの合わせ技【Keyhole pie chart】

Excel。鍵穴円グラフをつくるには、円グラフとドーナツグラフの合わせ技

<鍵穴円グラフ>

円グラフはアイディア次第で、様々な用途に合わせたグラフをつくることができます。

今回は、Yes・Noで表現する時につかう、『鍵穴円グラフ』の作り方を紹介します。
次のようなグラフです。
鍵穴円グラフ

ドーナツグラフの中央を塗りつぶしているだけでしょう?と思われるかもしれませんが、Excelのドーナツグラフは、ドーナツの穴を塗りつぶすことはできません。

そりゃ~穴ですから。

このグラフを作るための表を用意しました。

ドーナツグラフをつくることからスタートします。

ドーナツグラフは円グラフよりも汎用性があり、アイディアグラフでは重宝します。

A1:C3を範囲選択して、ドーナツグラフを作ります。

挿入タブの「円またはドーナツグラフの挿入」からドーナツを選択します。

今回は、凡例とグラフタイトルを削除します。

またグラフエリアが白だとわかりにくいので、グレーに塗りつぶした状態で説明を続けます。

今回の表の場合、表としてはわかりやすいのですが、グラフを作る時には、系列が逆になってしまっているので、グラフのデザインタブの「行/列の切り替え」をクリックします。

内側のドーナツグラフを円グラフに変更してきますので、内側・外側どちらでも結構ですので、クリックして、ドーナツグラフをアクティブにします。

グラフのデザインタブにある「グラフの種類の変更」をクリックして、グラフの種類の変更ダイアログボックスを表示します。

内側を「ドーナツ」から「円」に変更します。

外側の外は、「ドーナツ」のままですが、第2軸にチェックをいれて、第2軸に変更しOKをクリックします。

グラフはこのように変わりました。

外周のドーナツグラフをクリックして、書式タブのグラフ要素が、「系列”外”」になっていることを確認して、「選択対象の書式設定」をクリックします。

画面の右側にデータ系列の書式設定作業ウィンドウが表示されてきます。

系列のオプションをつかって変更していきます。

グラフの基線位置を変更して、回転させます。

ドーナツの穴の大きさを変更して、穴を少し小さくします。

グラフのデザインタブにある「グラフスタイル」のスタイル1を使うと、円を縁取っている白色の枠線をいっぺんに消すことができます。

グラフはこのように変わりました。

内側の円グラフと外周のドーナツグラフのNoにあたるパーツを同じ色で塗りつぶします。

また外周のドーナツグラフのYesにあたるパーツも別の色で塗りつぶしをします。

内側の円グラフにラベルを表示させます。

内側の円グラフをクリックして、グラフのデザインタブの「グラフ要素の追加」にあるデータラベルから「その他のデータラベルオプション」をクリックします。

作業ウィンドウが、データラベルの書式設定作業ウィンドウに変わりましたので、ラベルオプションから「セルの値」を選択し、データラベル範囲ダイアログボックスが表示されます。

A1をクリックして、OKボタンをクリックします。
データラベルが表示されますので、円中央に移動させます。

続いて、外周のドーナツグラフをクリックして、同じようにデータラベルを表示させたら、ラベル内容を、分類名とパーセンテージに変更します。

最後にデータラベルが小さいので、フォントサイズを大きくして完成です。

3/10/2020

今週のFacebookページの投稿 2020/3/2-2020/3/8

今週のFacebookページの投稿 2020/3/2-2020/3/8

<Facebookページ>

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

3月2日
Excel。COUPNUM関数。
読み方は、クーポンナンバーで、購入日後の利払回数を算出します

3月3日
Excel。COUPPCD関数。
読み方は、クーポンピーシーディーで、購入日より前の直近の利払日を算出します

3月4日
Excel。COVAR関数。
読み方は、コバリアンスで、2組のデータの母共分散を算出します

3月5日
Excel。COVARIANCE.P関数。
読み方は、コバリアンス・ピーで、2組のデータの母共分散を算出します

3月6日
Excel。COVARIANCE.S関数。
読み方は、コバリアンス・エスで、2組のデータの共分散を算出します

3月7日
Excel。CRITBINOM関数。
読み方は、クリテリアバイノムで、累計二項分布が基準値以上になる最小値を算出します

3月8日
Excel。CSC関数。
読み方は、コセカントで、角度の余割を算出します

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

3/08/2020

Excel VBA。VBAでOr条件はどう作るの?【Excel VBA】

Excel VBA。VBAでOr条件はどう作るの?

<Excel VBA:Or条件>

Excelでは、様々な条件分岐を行って資料を作ります。
例えば、次の表。

A列の店舗名が、新宿または、横浜だったらC列に「関東」と入力したい場合、ExcelではOR関数を使うわけですね。

C2に数式を設定する場合は、
=IF(OR(A2="新宿",A2="横浜"),"関東","")
という数式を設定するわけですね。

オートフィルで数式をコピーすれば、新宿または横浜ならば関東と表示されていることが確認できます。

データを読み込んできたあとに、これと同じように算出したい場合は、Excel VBAをつかうことで、データを読み込みから連動で処理すること可能になりますので、作業効率は改善できる感じがします。

そこで、Excel VBAでは、どのように作ったらいいのでしょうか?
OR関数と同じようにプログラム文を作ってみましょう。

Sub or_part1()
    Dim i As Integer
   For i = 2 To 11
        If Cells(i, "a").Value = "新宿" Or "横浜" Then
            Cells(i, "c").Value = "関東"
        End If
   Next
End Sub

実行してみると、Excelの数式のようにはいきません。エラーが発生します。

急に「型」っていわれても、文字は「”(ダブルコーテーション)」で囲っているし?
実は、Or以降の書き方が間違っているというか、不足しているのです。

次のようにプログラム文を書きなおしてみましょう。
Sub or_part1()
    Dim i As Integer
   For i = 2 To 11
        If Cells(i, "a").Value = "新宿" Or Cells(i, "a").Value = "横浜" Then            Cells(i, "c").Value = "関東"
        End If
   Next
End Sub

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

このようにExcel VBAのプログラム文でIF文での条件分岐でOrを使う場合には、面倒ですが、再度、Cells(i, "a").Value = "横浜"と「どこの何が」をExcel VBAに指示してあげないといけません。

しかし、Cells(i, "a").Value = "横浜"と入力する必要があるとしたら、Orの条件がもっと増えた場合プログラム文が、どんどん長くなってしまいますよね。

例えば、A5の梅田を大宮に変更して、新宿または横浜または大宮だったら「関東」としたい場合のプログラム文は、

If Cells(i, "a").Value = "新宿" Or Cells(i, "a").Value = "横浜" Or Cells(i, "a").Value = "大宮" Then

と煩雑になりますし、プログラム文をつくるもの大変です。

そこで、If文を使うよりもSelect Case文を使ったプログラム文ならば、短くなりますし、その分、わかりやすくなります。

では、Select Case文で作ってみましょう。
Sub or_part2()
    Dim i As Integer
    For i = 2 To 11
        Select Case Cells(i, "a").Value
            Case "新宿", "横浜", "大宮"
                Cells(i, "c").Value = "関東"
            Case Else
                Cells(i, "c").Value = ""
        End Select
    Next
End Sub

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

A5を大宮に変更して実行しましたので、先程空欄だったC5にも関東という結果が表示されています。

今回のように、Excel と Excel VBAは似ているようで似ていないというものが、ちょこちょこありますので、Excelと同じようにして、上手くいかない場合は、Excel VBAでは、どのようになるのかを調べるといいようですね。

3/07/2020

Excel関数辞典 VOL.26。EVEN関数~EXPON.DIST関数

Excel関数辞典 VOL.26。EVEN関数~EXPON.DIST関数

<Excel関数>

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

EVEN関数
イーブン
数値を偶数に切り上げる
EVEN(数値)

EXACT関数
イグザクト
英字の大文字と小文字を区別して文字列が一致するか比較する
EXACT(文字列1,文字列2)

EXP関数
イクスポネンシャル
オイラー数eのべき乗を算出
EXP(数値)

EXPONDIST関数
エクスポンディスト
指数分布の確率密度関数と累積分布関数を計算する
EXPONDIST(x,λ,関数形式)

EXPON.DIST関数
エクスポン・ディスト
指数分布の確率密度関数と累積分布関数を計算する Excel2010以降
EXPON.DIST(x,λ,関数形式)

3/05/2020

Excel。A~E評価で一番いい評価を抽出するのは意外と大変です。【Alphabet extraction】

Excel。A~E評価で一番いい評価を抽出するのは意外と大変です。

<CHAR+MIN+CODE関数>

下記の表があります。

試験1回目から5回目まで行って、それぞれの評価に基づいたA~Eまでの文字が入力されていて、G列には、担当者ごとの評価の中で一番いい評価を抽出しているという表です。

一件目の試験評価が、E・B・D・D・A・Aなので、A評価がG列に抽出されているわけです。

簡単そうに思えますが、意外とG列の一番いい評価を抽出するのが大変なので、確認をしていくことにしましょう。

【MIN関数では対応できない】

最初に考えるとしたら、A~EなのでAとEを比べる、例えば昇順にすれば、Aが一番最初にありますから、MIN関数を使えばいいように思えます。

ではG2にMIN関数で算出してみましょう。

算出された結果は、なんと「0(ゼロ)」。想像していたように算出してくれませんでした。

なぜ、こうなってしまったのかというと、MIN関数。

この関数は、対象が数値でないといけない関数なのです。

ただ、MIN関数を使うというアイディアは悪くないのです。

問題は、数値でないとダメということ。

【CODE関数で文字を文字コードに変換する】

コンピューターの文字というのは、アスキーコードとかUTF8など文字コードを持っていているという特徴があります。

幸い文字コードは数値です。

その文字コードを使えば、A~Eまでのアルファベットであっても数値化することができます。

文字を文字コードに変換することができる関数があります。

それが『CODE関数』
H2にF2の「A」の文字コードが、いくつなのか確認してみましょう。

H2の数式は、
=CODE(F2)
算出された結果は、65です。
Eは69という文字コードをもっています。

このCODE関数を使えばどうにかなりそうですね。

それでは、G2の数式を次のように設定してみましょう。

=MIN(CODE(B2:F2))
MIN関数とCODE関数をネストにしています。

CODE関数の引数は、範囲なので、B2:F2という範囲でも設定することが可能です。

しかし算出された結果をみると…

65と算出されてしまいました。

たしかに、1件目のデータは、Aが算出してほしいので、そのAの文字コードである65が算出されたところまではいいのですが、65という数値ではなく、「A」という文字を表示してほしいわけです。

原因は、CODE関数をつかったことで、文字が数値になってしまったからです。

なので、今度は、文字コードになった数値を文字に変換する「CHAR関数」を使う必要があります。

【CHAR関数で文字にもどす】

G2の数式をさらにアレンジします。

=CHAR(MIN(CODE(B2:F2)))

算出結果を確認して、オートフィルで数式をコピーしてみましょう。

これで、アルファベットの評価を算出することができました。

文字だけでコントロールできない場合は、文字コードとつかうという方法もありそうですね。