アプリ版:「スタンプのみでお礼する」機能のリリースについて

A1からT1のセルに不連続に1(数値)が入力されています。
1と入力されている連続したセルを下記の様に数値化し
その合計をV1に出したいのですがどおすればよいでしょうか?

6~9連続を1 10~13連続を2 14~17連続を3 18~21連続を4 22連続以上を5

下の画像の場合
B1~H1まで7連続で1が入力されているので1
M1~Q1まで5連続なのでカウントしないので合計で1になります。

「Excelで連続したセルを数値化し合計を」の質問画像

A 回答 (4件)

他のセルを使ってもいいでしょうか?


値は0か1でしょうか?
その前提でw

A2=A1
B2=IF(B1=1,A2+B1,0)
※B2→C2~T2にコピー

A3=IF(B2=0,IF(A2<6,0,IF(A2<10,1,IF(A2<14,2,IF(A2<18,3,IF(A2<22,4,5))))),0)
※B3~T3にコピー

V1=SUM(A3:T3)

でいかがでしょうか?

ちなみにA1~T3がセル20個なので、
22連続以上を5 はありえない気がします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
計算できました!
ちなみに3行使わずに1行に集約させることは難しいでしょうか?
贅沢言ってすみません

お礼日時:2017/04/20 12:49

こんにちは!



VBAになりますが一例です。

Sub Sample1()
Dim j As Long, k As Long
Dim cnt As Long, myCnt As Long
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, j) = 1 Then
k = j
Do While Cells(1, k) = 1
cnt = cnt + 1
k = k + 1
Loop
Select Case cnt
Case Is >= 22
myCnt = myCnt + 5
Case Is >= 18
myCnt = myCnt + 4
Case Is >= 14
myCnt = myCnt + 3
Case Is >= 10
myCnt = myCnt + 2
Case Is >= 6
myCnt = myCnt + 1
End Select
cnt = 0
j = k
End If
Next j
MsgBox myCnt
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだ未熟なものでマクロ使い切れません
参考にさせていただき
チャレンジしたいと思います。

お礼日時:2017/04/20 14:55

No1です^^



このシートは1行目しか使いたくない?のであれば、
例えば2行目2行目の列を別シートにしても大丈夫だと思います。

他のシートがあるのもNGで、
完全に1行だけでやろうとするとマクロを使う必要があるかと思います。
    • good
    • 0

No1さんと途中まで同じで、


A3=IF(B2=0,ROUNDDOWN((A2-2)/4,0),0)
とするのはどうでしょう?(同様にコピーしてください)

B2=0ということは、A1も0であるか、A1が1であれば、連続する最後の1である。ということなので、
A2の数字によって加える数字(6~9連続なら1…)を表示する。(A1が0なら0)
という式ですね。

ROUNDDOWN((A2-2)/4,0)というのは、(A2-2)/4の整数部分を計算する関数です。
A2には、その列まで何連続で1があるかを表示しているので、
6連続であれば-2で4となり、4で割ると1なので、整数部分は1となります。
0~5連続であれば(-)0.XXとなるので、整数部分は0です。
整数部分はINTを用いても計算できますが、マイナスの時の切捨て切り上げが逆になるので、ROUNDDOWNにしています。(INTだと-0.25は-1に、ROUNDDOWNだと-0.25は0に、なります)
10連続であれば-2で8となり、4で割って2、整数部分は2となります。
同様に連続が4増えれば表示が1増えるようになっています。
(カウントする数字が4刻みで増える為使えるので、途中で4刻みでなくなる場合は使えません)
    • good
    • 0
この回答へのお礼

ありがとうございます。
4づつ増えているの気づいていただきありがとうございます。
連続で4では無くなる可能性があるのでNo1さんのでやってみます。
本当にありがとうございました。

お礼日時:2017/04/20 14:58

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