• ベストアンサー

Excelで空白セル直前のセルデータ値を取得したい

Excelで空白セル直前のセルデータ値を取得したいです。    [A]  [B]  [C]  [D]  [E]  [F]  [G]  [H] [1]   5  8  9 [A1]~[G1]と順番にデータをスキャンし、空白セルが見つ かったらその直前のセルデータ値を取得し、その値を[H1]に表示す るには、どのようにしたらいいでしょうか。 上記の場合は[D1]が空白セルなので、その前の[C1]の値 9 を [H1]に表示したいです。 宜しくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

条件つきですが次の方法は如何でしょうか。 ・入力データは全て数値、途中に空白セルはない H1に=INDEX(A1:G1,COUNT(A1:G1))で下方向にコピーして下さい。

noname#233004
質問者

お礼

回答ありがとうございます。 もともと関数での処理を希望したのですが、質問を投稿する カテゴリを間違ってしまったようです。 mu2011さんの回答で、すんなりできました。

その他の回答 (4)

noname#22222
noname#22222
回答No.5

VBAの書き方は、常に、数通りあります。 その一例です。 Private Sub CommandButton1_Click()   Dim I As Integer      Cells(1, 8) = ""   For I = 7 To 1 Step -1     If Len(Cells(1, I) & "") > 0 Then       Cells(1, 8) = Cells(1, I)       Exit For     End If   Next I End Sub ※Trim関数が必要か否かは質問者で判断して下さい。

noname#233004
質問者

お礼

回答ありがとうございます。 昔少しだけプログラムを組んだことがあるので、 回答内容はわかりやすかったです。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

順を追ってプログラムしていけば難しくありません。 ---- Sub mSPCheck() Dim i As Long 'A1~G1まで繰り返し For i = 1 To 7 '空白チェック If Len(Trim$(Cells(1, i).Value)) = 0 Then '空白ならループを抜ける Exit For End If Next 'ループ条件が空白かどうかチェック 'i = 8はForループの条件で抜けた場合 If i < 8 Then '空白なら値をH1に設定 Cells(1, 8).Value = Cells(1, i - 1).Value End If End Sub

noname#233004
質問者

お礼

回答ありがとうございます。 私のような初心者でも解りやすかったです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

No2です。 すみません、VBA期待の所、関数で回答しました。 読み飛ばして下さい。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Range("H1") = Range("A1").End(xlToRight).Value

noname#233004
質問者

お礼

回答ありがとうございます。 とてもスマートな回答で感動しました。

関連するQ&A

専門家に質問してみよう