• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:差し込み印刷でのMOD関数)

差し込み印刷でのMOD関数

このQ&Aのポイント
  • 差し込み印刷でのMOD関数についての質問です。Excelからデータを持ってきたいが、セルの先頭1桁を取得するためにMod関数を使用しようとしていますが、うまくいきません。具体的なフィールドコードも提示しています。
  • 初心者のため、差し込み印刷でのMOD関数についての質問です。Excelからデータを取得し、セルの先頭1桁を取得するためにMod関数を試していますが、構文エラーが発生しています。
  • Wordの差し込み印刷でMOD関数を使う方法に関する質問です。Excelのデータを取得し、セルの先頭1桁を取得するためにMod関数を使用していますが、うまく動作しません。フィールドコードの設定に問題があるのか検討中です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

質問にある過去ログの回答者です。 過去ログでのNo,1の回答内容では一部構文エラーになりますね。 B1とE1では問題ないのですが、INT関数とMOD関数の組み合わせ における桁数の問題が解消されていませんので。 Wordの式フィールドで使えるMOD関数では、MOD(x,y)の値にて 値yでは2桁までしか対応していません。ですから、4桁ある場合 は{ = INT ( MOD ( { MERGEFIELD N0. },100 ) / 10 ) \# # } のようなフィールドコードは成立しません。 { = MOD ( { MERGEFIELD N0. },100 ) }だと3桁になるで、 無効となり、構文エラーになるのです。 私が回答しておきながら、今まで気が付かないままでいたこと が恥ずかしいですね。過去ログのほうが締め切られていません ので、今回の質問で気が付きましたから、修正した回答を追記 として過去ログにて回答しておきました。勉強不足を露呈して いる証拠ですね。間違っていた修正前の過去ログを参考にした 質問者さんなどの閲覧者を混乱させて、すいませんでした。 さて、ここからは質問の差し込み印刷における桁の抽出方法を 説明します。 6桁の頭1桁を抽出したいだけならば、以下のINT関数と演算子の 組み合わせて対応できます。 { = INT ( { MERGEFIELD "F2" }/100000 ) } 数値書式スイッチ「\# #」がないのは、必ず6桁ある数値として 差し込みをするので、6桁目がない場合の挿入位置における表示 を空白スペースに置き換える必要がないためです。 6桁で5桁目だけを抽出したい場合は以下の数値書式スイッチを INT関数と演算子の組み合わせて、簡単に抽出できます。 { INT ( { MERGEFIELD "F2" }/10000 ) \# x } 数値書式スイッチ「\# x」は桁数を指定するスイッチですので、 INT関数での計算結果が2桁になっていても下1桁だけを表示する ことができます。 この数値書式スイッチを使えば、6桁のうちの下3桁だけを抽出 することも可能です。 例{ = 123456 \# xxx } → 結果 456 このことからも分かるように、過去ログでは数値書式スイッチの 「\# x」で下一桁だけを抽出することができるので、MOD関数を 使う必要はなかったのです。 { =INT ( { MERGEFIELD N0. }/1000 ) \# x } { =INT ( { MERGEFIELD N0. }/100 ) \# x } { =INT ( { MERGEFIELD N0. }/10 ) \# x } { MERGEFIELD N0. \# x }

その他の回答 (3)

回答No.4

No.3で書き忘れたので、追記。 No.2の回答でも少し書いていますが、MOD関数で対応せずに 数値書式スイッチ「\# x」で桁数を指定したほうが簡単です。 { MERGEFIELD "F2" \# xxxxx} この方がスマートですし、無駄がありません。 桁区切りにすることも簡単ですしね。 { MERGEFIELD "F2" \# xx,xxx}

junji0609
質問者

お礼

お早い回答ありがとうございます! 質問の意図は 任意の桁をだけとりたい と言うものでした。 ですので、No2の回答で大丈夫です! でも・・・できませんでした↓ どうも「!構文エラー」になってしまいます・・・ でも、考え方はわかったので もう少しためしてみます! 詳しく説明していただきありがとうございました!

回答No.3

No.2の回答者です。 なぜ、MOD関数での値yが3桁以上になった時に構文エラーに なるのかを、私なりに検証して調べてみました。 どうも、MOD関数の「MOD(x,y)」の引数を区切るのに半角の カンマ「,」を使うと、桁区切りとして認識しているようで、 値xのみを記入しているのと同じ状態として構文エラーになる みたいです。 そこで構文エラーにしないために、値xとカンマをしっかりと 分ける意味で、文字列や計算した数値として認識できるもの として記載する必要があるようです。 差し込み印刷での例 文字列と認識させる場合 { = MOD ( { QUOTE "{ MERGEFIELD "F2" }" },100000 ) } 計算した結果として認識させる場合 { = MOD ( { = { MERGEFIELD "F2" } },100000 ) } No.2の回答では、6桁の数字のうちから頭1桁をとるという 意味が、頭1桁だけを抽出することがだと思っていました。 けれど、質問にあるMOD関数を使った式フィールドの内容で 新たに考え直してみると、6桁のうちから頭1桁がなくなった 残り5桁を表示させる計算式を希望しているのですね。 つまり、差し込む数値が仮に123456だとしたら、1を取って 23456だけにしたいのですよね。 { = MOD ( { =123456 },100000 ) } なら有効な計算式になります。 これと同じことを上記の差し込み例では可能にしています。 No.2の回答内容は参考程度として、値xと値yを別々の数値 として認識できる形式にすることで、MOD関数で値yを3桁 以上でも可能にすることが、検証結果から導き出しました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

フィールドの上で右クリックして「フィールドの更新」(またはF9キーを押す)を行ってください。

junji0609
質問者

お礼

それは知りませんでした! 他の項目で必要なことがあったので助かりました。 ありがとうございました!

関連するQ&A