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で連続したセルを数値化し合計を」の質問画像

このQ&Aに関連する最新のQ&A

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で質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QExelのセルにある数値の1桁目の数値を1から5は5にしたいのですが

教えてください。
Exelの四捨五入を行うROUNDO関数を使用しています。
これを少し変形し、数値の末尾が1から5のときは、末尾を5にしたいのですがアドバイスをお願いします。
具体的には、91は95、234は235、2255は2255のように数値変更をする方法です。
なお、0と6以上はROUNDO関数で可能です。

Aベストアンサー

=CEILING(数値,5)
でいかがでしょうか。

数値の1の位が1~5のときは末尾が5に、
数値の1の位が6~0のときは末尾が0になりますが、
5を少しでも超えると(たとえば5.0000000000001など)末尾が0になります。
(同様に、0を少しでも超えたときは末尾が5になります)

Qエクセルセルの表示設定について:セルに「1-1」としたいので入力すると

エクセルセルの表示設定について:セルに「1-1」としたいので入力すると自動的に「1月1日」に変換されます。セルの表示設定で表示形式が関連するのではといろいろ触っているのですが知識不足で解決しません。セルに「1-1」と入力した時、或る時は「1月1日」に又或る時は「1-1」になるようにするにはどのような設定方法が適当かお教えをお願いします。

Aベストアンサー

こんばんは

私の場合は、セルの書式設定を変えずに、
入力値を文字列として扱うよう、頭にシングルコートを付けて入力します。

この場合は '1-1 です
セルの表示上は 1-1 ですが、数式バーには '1-1 と表示されます。

余談ですが、シングルコートを付けるとフィルハンドルでもインクリメントしてくれます
 ※ '1 と入力してそのセルを基点にフィルハンドルを使うと
   '2 → '3 → ... とインクリメントしてくれる

以上、ご参考までに

Qエクセルでセルに入力した値によってそれに対応した数値で合計を出す

以下のような表を作成します

(あ)入力用の表
     A    B    C     D
1    品物   箱数   バラ個数  合計個数
2    りんご  3     7     157
3    みかん  2     9     209

(い)品物の一箱あたりの個数を記したデータの表
     A    B
100  品物   一箱あたりの個数
101  りんご  50
102  みかん  100
103  ぶどう  30

2行目について説明しますと、
まずA2に(い)の表のA列のリストに書いてある品物の名称を入力します。
次にB2に箱数を入力、最後に箱とは別にバラの個数をC2に入力します。
そうすると、りんごは一箱50個入りで、それ以外にバラで7個なので、
D2の合計個数は
3(箱)×50(個/箱)+7(個)=157(個)
となるような数式は、どのように書けばよろしいでしょうか…。

よろしくお願いします。

Aベストアンサー

こんなんでどうでしょうか
=VLOOKUP(A2,A101:B200,2,FALSE)*B2+C2

Q複数のセルすべてに数値が入れば別セルに1と入力

エクセルについて
例えば、A1とA2とA3とA4のすべてに数値が入れば、B1に1としたい。
上記Aセルにひとつでも空白があれば、B1も空白としたいのです。
宜しくお願いいたします。

Aベストアンサー

>すべてに数値が入れば、B1に1としたい。
>上記Aセルにひとつでも空白があれば、B1も空白としたいのです。
条件が不十分です。
それらのセルに文字列が入った場合はどうなるのでしょう?

「空白以外なら」と「何かが入力されていれば」とは別物です。
また、「空白」と「数式によって""が入力されているため何も表示されない」もこの先別物になりますので質問文内に記述したほうがいいでしょう。

そのうちの「すべてが空白なら」で条件分岐すると
B1=IF(COUNT(A1:A4)<>0,"",1)
でできるでしょう。

ただし、指定範囲に数式が入っていて、その数式の結果が「""」の場合は、空白とみなしてくれません。
その場合は
B1={IF(SUM(LEN(A1:A4))<>0,"",1)}
という配列数式でできるでしょう。

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報