No.5ベストアンサー
- 回答日時:
質問の意図が良く判りませんが、要するに、A列に0以外の数値がある時、その直前(上方向)の数値がある行から何行離れているかを表示できれば良いのででしょうか?
#7行目の前は3行目に0以外の数値があるので、4と表示
それでしたら、B2に↓の式を入れ、下方向にコピーしてください。B1ではなく、B2です。
=IF(A2=0,"",IF(SUMPRODUCT(MAX(ROW(A$1:A1)*(A$1:A1<>0)))=0,"",ROW()-SUMPRODUCT(MAX(ROW(A$1:A1)*(A$1:A1<>0)))))
No.7
- 回答日時:
0の判定とカウントの数式がわかり、使い始めた方でも解けそうな話で、策もいろいろあります。
難しい事でもないので、これならどう?って競うのも回答としておかしいように思います。いろいろ試して問題となっていた点を引き出すべきです。ここの回答を使い結果が出てよかったー、で終わるような展開にしないで下さい。何がどううまくいかなかったかの問題に対して答えは出てますか。こちらを質問提示すべきです。
何を悩んでいたのか不思議です。
もし、何千行もあって数式いれるのが大変=関数にしたいという見解なら、そこも数式と関数の使い分けの考え方を聞く方が良いです。
0かどうか判定、1つ前行も0なら+1、A3みたいに0でないならそこから1、こんな数式から作ってみましたか?。
No.4
- 回答日時:
こんにちは!
一例です。
↓の画像のように作業用の列(B列)を設けています。
単純に連番を表示させているだけです。
B2セルに
=IF(A2="","",ROW(A1))
C2セルに
=IF(OR(A2=0,COUNTIF($A$2:A2,"<>0")<2),"",INDEX($B$2:B2,LARGE(IF($A$2:A2<>0,ROW($A$1:A1)),1))-INDEX($B$2:B2,LARGE(IF($A$2:A2<>0,ROW($A$1:A1)),2)))
これは配列数式になってしまいますので、この画面からコピー&ペーストしただけではエラーになると思います。
C2セルに貼り付け後、F2キーを押す、またはC2セルをダブルクリック、または数式バー内で一度クリックします。
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。
そして、B2・C2セルを範囲指定し、C2セルのフィルハンドルでダブルクリックすると
画像のような感じになります。
以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m
No.3
- 回答日時:
関数では厳しいのでマクロにしてみました。
(1)シートタブ上で右クリック→コードの表示→右画面に以下のコードを貼り付けでマクロ実行して下さい。
<サンプル>
Sub test()
k = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = "" Then Exit Sub
If Cells(i, 1) > 0 Then
If k > 1 Then
Cells(i, 2) = i - k
End If
k = i
End If
Next
End Sub
No.2
- 回答日時:
質問には、データをならべて、その法則性を、読者や回答者に考えろ、でなく、質問者が文章でやりたいことを表現すべきだ。
質問者の思考力をきたえ、正確性に意図を掴んでもらうことと、質問者の礼儀と思う。ーー
(1)こういう問題は関数では難しいのだ。理由は非空白(や0)の出現行が不定であるためである。
VBAでやると簡単なロジック(考え)で出来る。理由はプログラムでは直前の非空白行番号数を、変数という仕組みで、覚えて伝えられる(使える)からだ。
しかしVBAが経験無いだろうから
(2)関数では
例データ(質問では0になっいるが、下記では空白行に変えた例にしている。少し式を変えれば、0の場合に変更可能だろう。)
行番号 A列 B列 C列
1データ作業列間隔
2
3
4
5155
6
7
81283
9
10
11
121124
13
14
152153
163161
17
18
19
20
212215
C2には=IF(B2<>"",ROW(),"")
と入れて下方向に式複写。
D2には=IF(B2<>"",ROW()-MAX($C$1:C1),"")
式を下方向に複写。
結果
上記D列
ーー
上例で、最初非空白出現の第5行のみD列で正しい4が5になるが、式を複雑にして修正も可能だがそのままにしておく。
作業列C列を使わない式で回答に出るかもしれないが、複雑になりそう。作業列を使うことで考え方が簡単になるので使った方法を示した。
No.1
- 回答日時:
こちらのような、マクロは いかがでしょうか?
Sub Macro1()
Dim count1 As Integer
'
Range("A1").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> 0 Then
ActiveCell.Offset(1, 0).Select
count1 = 1
Exit Do
End If
ActiveCell.Offset(1, 0).Select
Loop
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> 0 Then
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = count1
ActiveCell.Offset(0, -1).Select
count1 = 0
End If
ActiveCell.Offset(1, 0).Select
count1 = count1 + 1
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- 数学 確率の計算式と答えを教えて欲しいです。 オンラインゲームでキューブというシステムがあり、キューブを一 2 2022/12/30 01:07
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの関数について教えてくだ...
-
VBAについての質問です
-
Excelにいついて質問です。
-
一つのセルに(例えばA1)入力...
-
エクセルファイルがファイルの...
-
【マクロ】名前を保存する際に...
-
Excel 複数列 A列B列C列一致 D...
-
エクセル vbaについて教えてく...
-
エクセルであるセルに数字を入...
-
Excelについて教えてください
-
エクセル マクロ チェックボックス
-
【マクロ】顧客番号にて一致さ...
-
エクセル共有したが、アクセス...
-
Excel分析ツールでのポアソン回...
-
【Excel】数字を3倍にし、なお...
-
エクセルのデーターが2か月前の...
-
LOOKUP関数を使えばいいのでし...
-
エクセルの神よ、ご回答を! エ...
-
Excelでセルの値が同じか...
-
エクセルを使っていて2024/5/15...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報