プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。

添付画像にあるクエリを作成しました。
黄塗りのセル(「商品コード」フィールドの1と「10」フィールドの交差する場所)が空白になっています。
この空白部に「10」フィールドの一つ前のフィールドの値をコピーしたいのですが関数式を教えてください(ここでは、「9」フィールドの16,500をコピーしたい)。

1.添付の上段の画像の場合は、以下の関数でいいのでしょうか?
  iff([10]=" ", [9].[10])

2.添付画像下段にあるような[10]フィールドの前のフィールド名が固定できない
 場合は([9]フィールドではなく、[7]や他の名称に変わる場合)の関数式を教えてください。

よろしくお願いします。

「ACCESS2013  空白セルにデータ」の質問画像

A 回答 (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 判別 )でやってみてください。
    • good
    • 0
この回答へのお礼

お世話になっております。

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

お礼日時:2014/09/20 13:25

1だけ



> 1.添付の上段の画像の場合は、以下の関数でいいのでしょうか?
「空白セル」には2つの状態があるはず。
””で表せる「空文字(からもじ)」と、Null(ヌルまたはナル)。

みためは同じでも、空文字とNullの値は異なります。

そのため、
iff([10]=" ", [9].[10])
では[10]がNullの場合、[9]を返さない。

対策は、Nz関数を使用して、値がNullの場合に代替値を指定する。

なので
iif(Nz([10], ””)=””, 9], [10])
でどうでしょう?
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/09/20 13:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!