アクセス関数で数字列を5桁にする方法
- アクセスのフィールドに関数を埋め込む際、数字列を5桁にする方法についての質問です。
- 現在の関数に誤りがあるため、うまく実行できていない状況です。
- 質問者はIIFとformat関数を使用して数字列を処理しようとしていますが、どこに問題があるかわかっていません。正しい方法を教えてほしいとのことです。
- ベストアンサー
アクセス iff関数、format関数について
いつもお世話になっております。 アクセスのフィールドへ関数を埋め込みたいのですが、 関数に誤りがあるため、うまく実行ができておりません。 今回、実行したいことは、 ※数字列の左端に0を埋め込み、5桁にしたい。 ※数値が負の場合、マイナスを含めて、5桁にしたい ※数字列に入る数値は-1000~1000の予定 ※当方、アクセス2003を利用。 ex) 1 → 00001 -3 → -0003 0 → 00000 156→ 00156 -1000 → -1000 15000 →15000 当方の作成関数は、以下の通りですが、 どこが悪いのかよくわかりません。。ご教示願います。 あるいは、全くの見当違いである場合は正しい関数をご教示頂けないでしょうか。 式1: IIF((format([数字列]<0),([数字列],"0000"),([数字列],"00000")) →数字列が0よりも小さい場合→マイナス + 0-4個 0を付ける。 →それ以外の場合→左端に0-5個0を付ける。 という考えのもと、考えました。
- mame1218
- お礼率100% (91/91)
- オフィス系ソフト
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例データI D フィールド1 式1 1 0 00000 2 -3 -00003 3 1 00001 4 156 00156 5 -1000 -01000 6 15000 15000 式1は 式1: Format$([フィールド1],"00000;-00000;00000") マイナスだけが有効数字4桁だが其れで良いのなら 式1: Format$([フィールド1],"00000;-0000;00000") で質問のようになる。 3書式のFormat関数を使う。 順序はエクセルと同じく、正;負;0のときの順
その他の回答 (2)
- IDii24
- ベストアンサー率24% (1597/6506)
結果に前ゼロを入れたいと云う事は、結果は数値ではなく文字でよい?と云う事になりますが良いでしょうか? その場合は数値を文字に替えてから整えます。 iif([数字列]<0,"-"& right("00000" & cstr([数字列]),5) ,right("00000" & cstr([数字列]),5)) でもゼロだった場合 00000 になってしまうので、もしこれを 0 にしたければ、 iif([数字列]=0,"0",(iif([数字列]<0,"-"& right("00000" & cstr([数字列]),5) ,right("00000" & cstr([数字列]),5)))) て長くなってしまうしパフォーマンスも悪い。VBAでモジュール処理した方が良いとは思います。
お礼
ご丁寧にありがとうございました。 参考にさせていただきました。
- mitarashi
- ベストアンサー率59% (574/965)
formatの場所が違ってますね。思いこんでしまうと、間違いに気づきにくいモノです。ご参考まで。 式1: IIf([num]<0,Format([num],"0000"),Format([num],"00000"))
お礼
ありがとうございました。 助かりました。
関連するQ&A
- Microsoftのaccessのクエリ関数につい
「負割」というフィールドがあり、0、1、2、3、200という数字が1つ選択できます。これを選択すると、「点数」というフィールドの数字と掛算されます。この合計額が「負担金」というフィールドに表示されるのですが、 ・0,1,2,3のどれかを選択した場合、 IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10)) で四捨五入されます。 ・200という数字が選択されると、「点数」×「3」の合計が199まではそのまま計算された数字で表示されますが、200や200を超えても「200」にしかならない。という式を作りたいと思っています。 できないことはこの「200」という数字が選択されたときの関数で IIf([負割]>199,(IIf([点数]*3)>200,200,(IIf(([点数]*3 Mod 10)<5,[点数]*3-([点数]*3 Mod 10),[点数]*3-([点数]*3 Mod 10)+10))),(IIf(([点数]*[負割] Mod 10)<5,[点数]*[負割]-([点数]*[負割] Mod 10),[点数]*[負割]-([点数]*[負割] Mod 10)+10))) このように導き出したのですが、関数が正しくありません。 間違っているのがわかる方、いらっしゃったら教えてください。お願いします。
- 締切済み
- その他(データベース)
- Access2000 クエリーでのformat関数について
Access2000で、テーブル作成クエリーを作っています。 その中で、例えば、 15000という数字を、00015000という形式で落とす場合、 format(項目,"00000000")とすればいいとこまでは理解しています。 これが、-15000のように、負の数字になった場合、同じようにすると、 -0015000となってしまうのですが、 これを、00-15000とするには、どうすればいいでしょうか?
- ベストアンサー
- その他([技術者向] コンピューター)
- Access97の更新クエリーのformat$関数をAccess2000タイプに直したいのですが
Access97の更新クエリーのformat$関数で format$([印刷]![区分],"@@") 上記の構文で数値を二桁の文字に直している更新しているのですが Access2000では関数を認識してくれません、 format関数でも同じでした Access2000で同じ事が出来る方法を教えてください
- ベストアンサー
- その他(データベース)
- Access2000 クエリーでの関数について
Access2000 クエリーでの関数についての質問です。 例えば、 ○○-○○○○○や、△-△△△△ という文字列があった時に、ハイフンの前の文字だけを抽出したい時は、どのようにすればいいでしょうか?ハイフンの前の数字の桁数は、決まってませんが、最大でも5桁程度です。また、文字列は全て半角です。 大至急知恵を下さい!
- ベストアンサー
- その他([技術者向] コンピューター)
- Excel関数
お世話になります。 Excelで、あるセル内の「~~Number○○~~」という文字列から、前後の不要な文字列を省いて「Number○○」部分だけを抽出する方法(関数?)はありますか。 注)○○の部分には様々な数字が入り、1桁の場合と2桁の場合があります。 また、「~~Number○○~~」という文字列から、自分で指定した特定の数字を含む場合のみ「Number○○」の文字列だけを抽出する方法もありますか。 ご教示いただきたく存じます。よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Excel関数について
おはようございます。初めて質問させていただきます。エクセルの関数で、ご質問があります。エクセル表のA行にはバラバラの数字が縦にずらっと並んでいます。その数字は、桁がばらばらで、10桁、100桁等色々な桁が入っています。 その全ての数字の一番左端の一文字だけを消したいのです。 例えば、112だったら12、21だったら1、1123だったら123という具合にしたいのです。 どのような関数を使用して、一度にそのような処理をすることができるかお教え願えませんでしょうか?
- ベストアンサー
- Windows系OS
- ACCESSで10桁の中から中の3桁を抜き出す関数
ACCESSで7けたの数値7654321から765の部分3桁と43の部分の2桁、21の桁を分けて抜きとりたいのですが、どういう関数を使ったらよいかわかりません、LEFT関数を使ってみたりしたのですがどうも欲しいものが取り出せないので基礎的なことですが教えてください よろしくおねがいします
- ベストアンサー
- オフィス系ソフト
- アクセスIIF関数
はじめまして。ACCESSのif関数について教えてもらいたいことがあります。 dataAの数値に対して、目標数80をこえればその数値分に10を乗算し、未達であれば、0を返すという条件式を行いたいのですが、うまくいきません。以下、自分がやっていたデータを記載します。 テーブル例 dataA 70 80 60 90 クエリ条件式 式1:IIF([dataA]>80,"([dataA]-80)*10","0") 未達については0が返るのですが、超えた場合(真の時)([dataA]-80)*10の式が表示されています。うまく計算させるには、どうしたらよいのでしょうか。ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
いつもありがとうございます。 完璧な回答でした。 前提条件(正数は5桁、負数は4桁)も把握でき大変役に立ちました。