Access2003 文字数の合計について

このQ&Aのポイント
  • 複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし、そのレコードごとの文字数合計を求める方法についてアドバイスをお願いします。
  • フィールド内にある空白を除いて文字数をカウントするため、Replace関数とLen関数を使用します。具体的な手順と式の入力方法を説明します。
  • エラーが発生して文字数を正しく表示できない場合についても、解決策を教えていただけると助かります。
回答を見る
  • ベストアンサー

Access2003 文字数の合計について

複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし, そのレコードごとの文字数合計を出したいのですが、「エラー」になってしまい うまくできないので、アドバイスを頂きたいと存じます。 ========================================================================= ☆1つのレコードA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。  なお、データの入っていない空欄がところどころにあります。 [手順1] まず、フィールド内にある空白を除くためReplace関数を使って置換するため フィールドへ以下の式を入力します。 B1: Replace([B]," ", "") D1: Replace([D]," ", "") (例) [ID]  [A]         [B]       [C]       [D]            [E]     1  東京都   港区 ○○1丁目  1-2-3   ●×マンション 101  ○○様方 2  神奈川県  横浜市○○○町   10-10    NULL           NULL 3  千葉県   千葉市 ○○○町  NULL    NULL            ○○様方 ========================================================================= [手順2] 空白を取り除いたフィールドの文字数をカウントするためLen関数を使ってカウントするため フィールドへ以下の式を入力します。 文字数: Len('' & [A] & [B] & [C] & [D] & [E]) (例) [ID]  [A]         [B1]       [C]       [D1]           [E]     [文字数]   1  東京都   港区○○1丁目   1-2-3   ●×マンション101   ○○様方     29 2  神奈川県  横浜市○○○町   10-10    NULL           NULL      16 3  千葉県   千葉市○○○町   NULL    NULL           ○○様方     14 ========================================================================= [手順1]~[手順2]を行い、文字数フィールドに合計値が表示されるようにしたいのですが、 [手順1]のクエリ実行でフィールド[D]の空欄に「#エラー」が表示されてしまい、 以下のとおり、[手順2]で文字数を出すことができませんでした。 (例) [ID]  [A]         [B1]       [C]       [D1]           [E]     [文字数]   1  東京都   港区○○1丁目   1-2-3   ●×マンション101  ○○様方     29 2  神奈川県  横浜市○○○町   10-10    #エラー        #エラー     #エラー 3  千葉県   千葉市○○○町   NULL    #エラー        ○○様方     #エラー ========================================================================= 上記のようなエラーを出さずに、文字数合計をしたいので、アドバイスをいただきたいと存知ます。 よろしくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

方法1:Iifで[D]がNullの場合を仕分けする。 D1: Iif([D] Is Null,"",Replace([D]," ", "")) 方法2:Nz関数 第1引数がNullの時に第2引数を表示する。第2引数が省略された場合は0を表示する。 D1: Replace(Nz([D],"")," ", "")

KTN1123
質問者

お礼

早々のご回答をいただき ありがとうございます。 「方法1」と「方法2」の両方とも、希望通りの結果を得ることができました。 NULLの仕分け方が分からなかったので、大変勉強になりました。 本当にありがとうございました。

関連するQ&A

  • Access2003複数フィールドの文字数合計

    複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし、そのレコードごとの合計を1回の更新クエリで算出する方法があれば教えてください。 =========================================================== ☆1つのレコードにA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。(データの入っていない場合は「null」となる) (例) No  [A]       [B]     [C]       [D]       [E] 1  東京都   港区   ○○1丁目  1-2-3   ●×マンション101 2  神奈川県  横浜市  ○○○町   10-10   △△ビル10F  3    〃      〃     〃       〃        〃    =========================================================== (1) これらの各フィールドの文字数を「LEN関数」を使って、新たなフィールドF~Jに文字数を表示する (2) そして、上記のF~Jの文字数を「SUM関数」を使って、フィールドKへ合計数を表示しています。 (例) No  [F]  [G]   [H]  [I]  [J]   [K] 1   3   2   5   5  10    25 2   4   3   4   5   7     23     =========================================================== 現在は、上記のように、各フィールドの文字数を出してから合計数を計算していますが、 この合計数[K]の値を、フィールドF~Jを作成しなくても一度で計算できるような関数式があれば教えてください。 私は、SQLが書けないので、フィールド欄へ関数式を入力しておりますが、 関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、宜しくお願い致します。

  • Accessの文字数を調べたい

    住所項目で半角と全角の混ざった状態になっており、半角1文字は1として全角は1文字は2として合計文字数を算出したいのですが、良い方法を教え下さい。 例 ○○県☐☐市1-2-3 Len  11 LenB 22 求めたい値は、全角6文字×2 + 半角5文字×1 = 17

  • [access]フィールドの中の特定の文字の数を出したい。

    アクセス(Ver.2000)のテーブルの、一つのフィールド内に 色々な文字が並んでおります。 その中の特定の文字の数を数えたいのですが、クエリで数を出す方法は? 例えば 一行目のフィールドに『abc』 二行目のフィールドに『bcc』 という二つのレコードがあったとします。 上記をクエリで、 『a』→ 1 『b』→ 2 『c』→ 3 というように各文字の数を出したいのですが、 どのような方法で出せるでしょうか? 分かる方ご教授よろしくお願いします。

  • Accessで住所ごとに集計したい。

    Access超初心者です。 アンケートの集計を取りたいのですが、住所ごとに細かく数えたいです。 例えば、○○市●●区△△町▲▲の場合、▲▲で何件かを知りたいのですが、今集計されているのは●●区で何件という形になってしまっています。 住所にはコードがつけてあり○○●●△△▲▲という感じで数字が振ってあります。 ▲▲のところは3桁で001は一丁目002は二丁目みたいになっているのですが、単純に▲▲でカウントしてしまうと、○○市●●区△△町までが違っていても一丁目が何件という数になってしまいますよね? そうではなくて、○○市●●区△△町一丁目で何件、○○市●●区△△町二丁目で何件という数を知りたいのですがどうやって条件をつけたらいいのかわからないので教えて頂きたいです。 質問の内容もわかり難いかと思いますがどうぞよろしくお願いいたします。 Access始めたばかりなので難しいことがわかりません。 どうかお力を貸して頂きたいです。

  • Excelで文字列を独自の二進数で表したい。

    A,B,C,D,Eのいずれかを含む文字が順不同でセルに入っているものから、 A=10000 B=1000 C=100 D=10 E=1 と置換して足した、二進数であらわしたり、逆にその二進数から文字列に戻したりしたいです。 (例:DAなら10010、EBCなら1101) VBAの自作関数を含めてExcelの関数でできる方法があればお教えくださると助かります。

  • ACCESS テーブル内の特定の文字の置換

    お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • Excel 文字数に制限あり??

    Excel 「CONCATENATE」文字数に制限あり?? 「B列からF列」までに入力された数字・文字・数式を、同じシート内の「H列」にて1行に表示させるため数式を入れていますが、文字数が255文字を(スペース含む)超えると【#VALUE!】(値のエラー)が出ます。 このエラーを回避し、正しく表示させる方法はありますでしょうか? ======================================================== *B列、D列、F列  数字、文字など、直接入力されています(空のセルあり) *C列、E列(参照先のセルが空白の場合あり)  =IF(ISERROR(INDIRECT("'シート名'!D2")),"",INDIRECT("'シート名'!D2")) *H列  =CONCATENATE(TEXT(B2,";;;@"),TEXT(C2,";;;@"),TEXT(D2,";;;@"),TEXT(E2,";;;@"),TEXT(F2,";;;@")) ======================================================== 分かりにくい説明ですみません。 よろしくお願いいたします。 環境 Win XP /Excel 2003

  • 筆まめ15 住所の文字数が多いと印刷が小さくなる

    筆まめVer15を使っています。 住所録を使ってはがきや封筒に貼る宛名ラベル印刷をしています。 1)**県**市***町**番**号  2)**県**市***町**番**号 **ビル2F(株)**** これまでは、1)の住所では問題なくプレビュー上でも 文字の大きさを自由に拡大させたり縮小が可能でしたが 2)のような住所だと拡大はおろか縮小もできなくて、固 定されてしまい、文字が多い分非常に小さく印刷されてし まいます。 1行に入れる文字数が多いために、このように小さくなる のかと思い、2行に分けて入力してもプレビューでは何ら 変化が無く、同じように小さく印刷されてしまいます。 どうすれば、文字数が多くても小さくならずに印刷をす ることができるのでしょうか?

  • 複数のフィールドから、合計数を求めたい

    複数のフィールドから、合計数を求めたい テーブルに複数フィールドがあり、その複数フィールドから、 使われている内容合計数を求めたいと思っています。 例として、 id, s1, s2 というフィールドがあり、 id s1 s2 1 A D 2 A G 3 C 空 4 D G この s1 と s2 からユニークな文字列でグループ分けをし各々の合計数を数えたいです。 (Aは2 Cは1 Dは2 Gは2 といったデータ) 1つのフィールドならば、 SELECT s1, COUNT(s1) FROM table GROUP BY s1 といったクエリでグループ分け及び合計数が求められるのですが、 これを複数のフィールドから行いたい場合の記述方法がわかりません。 宜しくお願いします。 ----------------- 環境  MySQL 5.1.22

    • ベストアンサー
    • MySQL
  • 【エクセル】特定の文字列を含むセルを検索する方法を教えてください

    エクセルで以下のようなことを行いたいのですが、どの様な方法で行ったらよいのかわかりません。 どなたか詳しい方がいらっしゃいましたらお教え下さい。 (1)sheet1のA列に町レベルまでの住所が入っています。 (例)A1 a1県b1市c1町    A2 a2県b2市c2町    A3 a3県b3市c3町   (以下続く) (2)sheet2のA~D列にエリアで分かれた複数の市のリストがあります。 (例)A1 北エリア/B1 東エリア/C1 南エリア/D1 西エリア    A2 n1市  /B2 e1市  /C2 s1市  /D2 w1市    A3 n2市  /B3 e2市  /C3 s2市  /D3 w2市   (以下続く) (3)sheet2の2行目以降にある各市の名称でsheet1の"b市"に検索をかけ、それがsheet2の1行目にある何エリアかを区分し、その結果をsheet1のB列に反映する。 (例)A1 a1県b1市c1町/B1 北エリア  ⇒ b1 = n2 など    A2 a2県b2市c2町/B2 東エリア  ⇒ b2 = e3 など    A3 a3県b3市c3町/B3 西エリア  ⇒ b3 = w256など   (以下続く) 今までは置換機能やフィルタ機能を用いてまずは"b市"をより分けた上で手作業を行ってきたのですが、時間がかかるので関数もしくはマクロで出来るようにしたいと考えています。 拙い説明で恐縮ですがお分かりになる方がいらっしゃいましたら是非ともお教えいただければと思います。よろしくお願いします。

専門家に質問してみよう