ACCESS2013 空白セルにデータをコピーする方法

このQ&Aのポイント
  • ACCESS2013で空白セルにデータをコピーする方法について教えてください。
  • クエリで黄塗りのセルが空白の場合、そのセルに前のフィールドの値をコピーする関数式を教えてください。
  • 添付画像上段の場合は、iff([10]=" ", [9].[10])で実現できるか確認してください。添付画像下段の場合、[10]フィールドの前のフィールド名が固定できない場合はどのような関数式を使用すればよいのか教えてください。
回答を見る
  • ベストアンサー

ACCESS2013  空白セルにデータをコピーす

お世話になっております。 添付画像にあるクエリを作成しました。 黄塗りのセル(「商品コード」フィールドの1と「10」フィールドの交差する場所)が空白になっています。 この空白部に「10」フィールドの一つ前のフィールドの値をコピーしたいのですが関数式を教えてください(ここでは、「9」フィールドの16,500をコピーしたい)。 1.添付の上段の画像の場合は、以下の関数でいいのでしょうか?   iff([10]=" ", [9].[10]) 2.添付画像下段にあるような[10]フィールドの前のフィールド名が固定できない  場合は([9]フィールドではなく、[7]や他の名称に変わる場合)の関数式を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

これの元はクロス集計でしょうか。 クロス集計の結果をテーブルに書き出して、 その出来上がったテーブルを書き換えた方が楽だと思います 以下の様な雰囲気で Public Sub Samp1()   Dim rs As New ADODB.Recordset   Dim i As Long   Dim bChg As Boolean ' ' ここで、クロス集計をテーブルとして作成し、 ' 出来上がったテーブルを対象に・・・ '   rs.Open "テーブル名", CurrentProject.Connection _             , adOpenForwardOnly, adLockOptimistic   i = rs.Fields.Count - 1   While (Not rs.EOF)     If (IsNull(rs(i))) Then       rs(i) = rs(i - 1)       rs.Update     End If     rs.MoveNext   Wend   rs.Close とか   rs.Open "テーブル名", CurrentProject.Connection _             , adOpenForwardOnly, adLockOptimistic   While (Not rs.EOF)     bChg = False     For i = 4 To rs.Fields.Count - 1       If (IsNull(rs(i))) Then         rs(i) = rs(i - 1)         bChg = True       End If     Next     If (bChg) Then rs.Update     rs.MoveNext   Wend   rs.Close End Sub ※ 空白部分は、他の表示を見る限り Null と思われるので、 1度、上記( IsNull 判別 )でやってみてください。

KASHIYADE
質問者

お礼

お世話になっております。 詳細なご説明ありがとうございます。 さっそくやってみます。 今後ともよろしくお願いします。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

1だけ > 1.添付の上段の画像の場合は、以下の関数でいいのでしょうか? 「空白セル」には2つの状態があるはず。 ””で表せる「空文字(からもじ)」と、Null(ヌルまたはナル)。 みためは同じでも、空文字とNullの値は異なります。 そのため、 iff([10]=" ", [9].[10]) では[10]がNullの場合、[9]を返さない。 対策は、Nz関数を使用して、値がNullの場合に代替値を指定する。 なので iif(Nz([10], ””)=””, 9], [10]) でどうでしょう?

KASHIYADE
質問者

お礼

ありがとうございます。 やってみます。

関連するQ&A

  • クエリでデータが無い場合の足し算について

    ご指導ください。 クエリのフィールドに、 1月、2月、3月、・・・・とあり、 それぞれの月で累計させた場合の式として、 例 3月) 3月: [1月] +[2月] とした場合、 例えば7月のデータが無い場合(基のテーブルで7月分のデータの行が無い場合)、 1月から6月までは上の式で累計されますが、7月から空白になります。 これをIff関数で回避しようとした場合、 式ビルダの式は、 ~もし7月のデータが存在しなければ0を、そうではなく存在するならば通常の計算式をとしたいのですが、 7月: IIf([07]=Null,0,[01]+[02]+[03]+[04]+[05]+[06]) この式では成功しません。 この、~データが存在しなければ、の部分をどのように表現したらよいのでしょうか?

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • 空白セルを作りたい

    お世話になっています。 A1+A2+A3の合計をB1に表示させるとします。 A1、A2、A3には、それぞれ数字が入る場合も、未入力(空白)の場合もあります。 1、A1空白、A2空白、A3空白の場合、B1に空白。 2、A1空白、A2 数字、A3空白の場合、B1はA2の数字(空白を除いて足し算した値を返す)の式を作りたいと思い、B1に =IF(A1="","",IF(A2="","",IF(A3="","",SUM(A1+A2+A3))))としましたが、1はできますが、2ができません。A1、A2、A3どれかひとつでも空白セルがあると、B2は空白で帰ってきてしまいます。 足し算した値を返してもらうにはどうすればよいでしょうか。 関数のご指導お願いいたします。

  • Access2003で複数条件で文字列を変換する

    Access2003で、フィールド内の空欄を削除するのと同時に、 フィールドの文字列を全角大文字に変換する方法を教えて下さい。 現在、2回に分けてクエリを実行しております。 まず、「Trim 関数」を使いフィールド欄へ式を入力し空白の削除を 実行してから、次に新たにクエリを作成して「StrConv 関数」を使い 文字列を全角大文字に変換しております。 一度のクエリで「空白削除」と「全角大文字変換」ができる方法を教えてください。 宜しくお願い致します。

  • ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

    ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。 EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。 下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。 IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

  • 0のときは空白、空白のときも空白を返す式について

    あるセルの値が0のときは空白に空白の時はそのまま空白を返す関数はどのようにすればいいでしょうか? たとえばIF計算式で0名の場合の答えは0ですがそれを空白にしたいと思います。 さらに空白のときも空白にしたいので=IF("","",C4/D6)という関数は使えないと思いますが、 どのような式にすればよいでしょうか。 宜しくいお願い致します。

  • ACCESS2010 データ一致でテキストを返す

    ACCESS2010でクエリー内の計算式について質問です。 クエリー内にフィールド1とフィールド2があり、この中のデータの組み合わせによって別のフィールドにテキストのコメントを返すための計算式を教えていたたきたいのです。 例:同一のレコードで、フィールド1が”A”でフィールド2が”1”であった場合、フィールド3に”当たり”といったテキストを返したい。 そのほかの組み合わせであった場合はブランクのままとするか、そのパターンによってテキストを変えたいのです。(Bと2の組み合わせではずれ、Cと3の組み合わせでもう一回、それ以外はブランク) フィールド1 フィールド2 フィールド3    A      1     当たり    B      2     はずれ    C      3     もう一回 IIf 関数を使ってチャレンジしてみたのですが、エラーが出てうまくいきません。 一つだけのフィールドを対象とした場合、下記の計算式で表示されるのですが、複数となった場合うまくいきません。 式1: IIf([フィールド1]="A","当たり") よろしくお願いします。

  • アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)

    あるテーブルの型名が空白の場合、同テーブルの部品名を表示させたく、更新クエリで、下記のように式を作成しましたが、空白のままのレコードが残ります。 IIf(IsNull([型名]),[部品名],[型名]) 更新クエリのテーブル名やフィールド名は間違ってないように思います。 初心者の為、説明がわかりにくくてすみません。 わかる方教えてください。

  • ACCESS2000のフォームでExcelへコピー

    お世話になっております。 ACCESS2000のフォーム(ソースはクエリ)で一覧表示されたデータの 一番左にあるバーをクリックしてレコードをコピーし、Excel2007へ貼り付けることがあります。 この時、"備考"というフィールドがあるのですが、メモ形式となっており、 おそらく文字数が多いか改行数が多いのか、Excelへコピー出来ません。空白になります。 他のフィールドや同じ"備考"でも文字数の少ないものはコピーされていますので おそらく文字数が多い等の為かと思います。 おおむね200文字くらいまでは無事にコピー出来ていると思います。 現状、クエリをExcelへエクスポートするvbaですと、無事にコピーされます。 これを出来たらフォームをドラッグしてコピーしても、大丈夫にしたいのですが、 ACCESSやExcelの仕様でしょうか。。何か心当たりありませんでしょうか。 Web検索しても見当つかずです。 宜しくお願いいたします。

  • Access レポートに合計を表示

    Accessについて質問です。 もともとあるデータを使っていて、0のデータが空白となってしまいました。 そこで、クエリに|登録数: Nz([登録件数],0)|というフィールドを作り、登録件数フィールドが空白の時には0が表示されるようになっています。 そのクエリを元にレポートを作成して、登録数の合計を表示させようとしたらエラーになってしまいました。 どうしたら合計を表示させる事ができますでしょうか? NZ関数を使っているから合計がエラーになってしまうのでしょうか? NZ関数が原因の場合、その他の関数を使って表示することは可能なのでしょうか?

専門家に質問してみよう