差し込み印刷でのMOD関数

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

差し込み印刷でのMOD関数

Wordの差し込み印刷についてお聞きしたいことがあります。 Word、Excelについては多少知識はありますが 差し込み印刷については初心者です。 Excelからデータを持ってきたいのですが セルには6桁の数字が入っていて、そのうちの頭1桁をとる場合に フィールドコードでMod関数のような式を入れると 上手く行くのではないかと考えています。 http://okwave.jp/qa/q4865527.html 上記ページを参考にしたのですが、なかなか上手く行きません。 私の場合、参照しているセルの名前がF2なので 初期段階のフィールドコードは { MERGEFIELD "F2" } とあったので { = MOD ( { MERGEFIELD "F2" },100000 ) \# # } としてみました。 構文エラーになります。 よろしくお願いいたします。

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

  • ベストアンサー
回答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

  • 差込印刷 MERGEFIELDとは?

    こんにちは OSは98SE、office2000です ワード内に表(9列×5行)を作成して、セル内に差込フィールドの挿入をしました、画面上ではエクセルで作ったデータ-が表示されていますが、プレビューと実際に印刷してみると MERGEFIELDと差込フィールド名が表示されるだけでデータ-が表示されません、どうしてでしょうか? よろしくお願いします

  • エクセルからワードへ差し込み印刷するときの郵便番号で

    エクセルからワードへの差し込み印刷で、封筒を作っています。 郵便番号は7桁の数字でハイフン抜きの状態です。 0以外の数字で始まる郵便番号は、うまく差し込みされるのですが、 0で始まる郵便番号がうまく行きません。 エクセルでのセルの書式設定は文字列とし、エクセルのセルでは頭の0が表示され、 7桁全部が表示されているのですが、ワードでは0の一桁だけです。 例)エクセル(文字列)0200173 ワード 0 エクセルの書式を標準とし、頭にアポストロフィなんかもつけてみたのですが、同じでした。 ワードのフィールドはMergeFieldですが、これがいけないのでしょうか? 先日までエクセルを文字列にすればうまく行っていたのですが… 不慣れな人がいじってファイルが一度壊れ、手直ししてからうまく行かなくなりました。 どなたかよろしくお願い致します。

  • 条件付きの差込印刷がうまくいかないのです

    昨日こちらに質問してIFフィールドを知りました。 ところがイマイチもうまく出来ません。助けて下さい。 エクセル2002で表を作成し、ワード2002へ差込印刷をします。 子供あり 子供なし  年齢  住所 1       ○    33  東京 2 ○          40  千葉 3       ○    23  千葉 4 ○          33  京都 以下のデータが900件位続く 条件が 子供ありが○の場合は年齢を差込 住所は差し込まない 子供なしが○の場合は年齢は差し込まず 住所を差し込む をIFフィールドで以下作成してもどちらも、差込がされてしまいます。 2つ条件があるばあいは2段にするのでしょうか? {IF {MERGEFIELD 子供あり}="○" "{MERGEFIELD 住所}" ""} {IF {MERGEFIELD 子供なし}="○" "{MERGEFIELD 年齢}" ""} この表の順番どおりに印刷をしたいので、子供ありだけソートして差し込むことができません。また、差込印刷ではなくて、アクセスとかの方がいいのでしょうか?

  • 差し込み印刷のフィールドコードを教えて下さい

    ワード、エクセル共2007です。 エクセルで作った氏名データで、姓と名の間の空白が全角なのですが、これをワードで差し込み印刷をすると半角の空白になってしまいます。 いろいろ調べて、これを全角の空白にするには「フィールドコード」の編集が必要ということまではわかったのですが、手順がわからず困ってます。 下記のような操作をしたのですが、どこが間違っているのか指摘して頂きたく、よろしくお願いします。 「差し込みフィールドの挿入」で氏名をクリックすると、{MERGEFIELD・氏名}が表示されます。 (最初は≪氏名≫でしたが、なぜかこういう表示になってしまいました) これを、右クリック→フィールドの編集→「全角文字」を選択→OKをクリックすると、、{MERGEFIELD・氏名・¥DECHAR}{MERGEFIELD・氏名}が出てきます。 これを「非表示」にして見ると、最初の氏名が横に2つ並んで表示されるのですが、半角のままで全角になってません。 又、なぜ2つ並んで表示されるのかも理解出来ません。 以上、どこが間違っているのかよろしくお願いします。

  • Wordへの差込印刷について

    Wordへの差込印刷について教えてください。 OfficeXPを使っています。 ExcelやAccessではセルやフィールドに対して「通貨」という属性を持たせ、「¥1,000」といった表示をしますよね。 このような値を差込印刷すると「1000」としか表示されません。「¥」や「3桁ごとのカンマ」は無視されてしまいます。 差込印刷においては、これらの書式は無視されるのでしょうか? 以前の「Office97ではできた」と聞いたのですが、これはXPになってからのことなのでしょうか。 ExcelやAccessから書式を反映させた差込印刷の方法がありましたら、教えてください。 よろしくお願いします。

  • 《助けて下さい!》Excelデータをwordで差し込み印刷をしたいので

    《助けて下さい!》Excelデータをwordで差し込み印刷をしたいのですが、名前など文字が0と認識されてしまいます。 ネットで上記の質問を探し、いろいろ試してみたのですが上手くいきません。 試してみた方法は… (1)DDE接続 データファイル形式でMicrosoft Excel ワークシートDDEを選択すると、『範囲名又はセル範囲』で ・ワークシート全体 ・filter base と出てきます。 ところが、・ワークシート全体 ・filter baseでは、差し込みたい内容がきちんと正確に反映さ れないため、断念しました (2)フィールドコードの設定   {IF { = { MERGEFIELD "引用1"} = 0 } "" {MERGEFIELD "引用1" } というフィールドコードを置けばよいとありました。 『コードの {} は、文字で入れるのではなく、Ctrl + F9 で、入力します』とありましたが、Ctrl + F9 を教えても { は出てこず、コピペしてみましたが、上手くできませんでした。 本当にお手上げです。宛名だけ、何百枚も手書きするとなるとゾッとします… どうか、詳しい方がいらっしゃいましたら、どうぞ教えて下さい。 宜しくお願い致します。

  • 差込印刷

    エクセルのデータをワードに差込印刷したいのですが、日付が 8/5/2007のようになってしまいます。 過去ログなどを調べて  { MERGEFIELD フィールド名 \@ "ggge年M月d日" } にするということがわかり実践してみたのですがどうしても 平成19年0月5日のように月の部分が0と表示されてしまいます。 どなたかわかる方がいらっしゃったら教えていただけないでしょうか?

  • 差し込み印刷ができなくなりました。

    Word2002バージョン使用です。 差し込みフィールド挿入の設定後、画面上に{ MERGEFIELD"郵便番号" }と表示され、ラベルのプレビュー表示に進んでもデータが表示されません。 印刷プレビューで確認するけど、真っ白の状態です。何か設定が変わったのでしょうか? よろしくお願いします。 ちなみに、データはExcelファイルから挿入しようとしてます。

  • 差し込み印刷について

    OSはXP、officeは2003を使用しています。ワードの差し込み印刷について教えていただきたいです。 ワードで作成した文章の中に、差し込み印刷機能で、エクセルのデータを参照したのですが、プレビュー表示をしたら、金額(777,777)のカンマが無くなった(777777)状態で表示されてしまいました。どうして、カンマが消えて表示されたのか、原因が分からないので教えてください。エクセルの金額の表示形式は、通貨表示です。 参考に差し込みの手順を書いておきます。 1文書の種類→レターを選択。2ひな形→現在の文書を選択。3宛先→既存のリストを選択し、エクセルを参照。4レターの作成→差し込みフィールドを選択し、データベースフィールドを挿入。5レターフィールド表示という流れで作成しています。

  • ワード差込について

     いつもお世話になっております。  office2003のエクセルからワードにで日付データの差込をしているのですが以下のような表示になってしまいます。  例えばエクセルでは  1990/3/31 となっているのを  ワードに差込むと   31/3/1990 となるはずですが  私の場合は      ge.3.31  となってしまいました。    しかも差込先で上記データを和暦に直すためにフィールドコードを次のようにしたら  { MERGEFIELD フィールド名 \@ "ggge年M月d日" }  平成19年10月26日と今日の日付になってしまいました。  いったいどうしたらよいのでしょうか?

専門家に質問してみよう