- ベストアンサー
Excelで空白セル直前のセルデータ値を取得したい
Excelで空白セル直前のセルデータ値を取得したいです。 [A] [B] [C] [D] [E] [F] [G] [H] [1] 5 8 9 [A1]~[G1]と順番にデータをスキャンし、空白セルが見つ かったらその直前のセルデータ値を取得し、その値を[H1]に表示す るには、どのようにしたらいいでしょうか。 上記の場合は[D1]が空白セルなので、その前の[C1]の値 9 を [H1]に表示したいです。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
条件つきですが次の方法は如何でしょうか。 ・入力データは全て数値、途中に空白セルはない H1に=INDEX(A1:G1,COUNT(A1:G1))で下方向にコピーして下さい。
その他の回答 (4)
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関数が必要か否かは質問者で判断して下さい。
お礼
回答ありがとうございます。 昔少しだけプログラムを組んだことがあるので、 回答内容はわかりやすかったです。
- o_chi_chi
- ベストアンサー率45% (131/287)
順を追ってプログラムしていけば難しくありません。 ---- 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
お礼
回答ありがとうございます。 私のような初心者でも解りやすかったです。
- mu2011
- ベストアンサー率38% (1910/4994)
No2です。 すみません、VBA期待の所、関数で回答しました。 読み飛ばして下さい。
- merlionXX
- ベストアンサー率48% (1930/4007)
Range("H1") = Range("A1").End(xlToRight).Value
お礼
回答ありがとうございます。 とてもスマートな回答で感動しました。
お礼
回答ありがとうございます。 もともと関数での処理を希望したのですが、質問を投稿する カテゴリを間違ってしまったようです。 mu2011さんの回答で、すんなりできました。