エクセル関数:通し番号に応じた値を自動入力

このQ&Aのポイント
  • エクセル関数を使用して、通し番号に応じた値を自動入力する方法を教えてください。
  • A列には連続する通し番号があり、B列には0または1が入っています。B列の値に応じて、C列に自動で値を入力したいです。
  • B列が0の場合は0を、B列が1のグループの先頭行には1を、途中の行には2を、最後の行には3を入力したいです。適切な関数を教えてください。
回答を見る
  • ベストアンサー

エクセル関数

次のような場合の関数をご教示頂けないでしょうか? ・A列には、時々連続する通し番号が入っています。 例 1 2 3 4 4 4 5 6 7 7 7 7 7 8 ・B列には、A列が1個の数字の行には 0 が、複数の数字の行には 1 が入っています。 例 0 0 0 1 1 1 0 0 1 1 1 1 1 0 ・C列に、関数で次のように自動入力したいのです。  B列が 0 なら 0  B列が 1 のグループの先頭行には 1  B列が 1 のグループの途中の行には 2  B列が 1 のグループの最後の行には 3 例 0 0 0 1 2 3 0 0 1 2 2 2 3 0 どういう関数になりますでしょうか? よろしくお願い致します。

noname#251202
noname#251202

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.3

添付画像のような計算式はいかがでしょうか。 なお、1 のグループが1つしかないときは、 1で、かつ3になるわけですが、 計算式では、3になるようにしました。 1としたいですか? =IF(B2=0,0,IF(AND(B1=1,B3=1),2,IF(B3=0,3,1)))

noname#251202
質問者

補足

ありがとうございました。 1のグループが1つしかないケースはありません。通し番号がダブっていないならB列は0だからです。 これを踏まえると、数式はどうなりますでしょうか?

その他の回答 (5)

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.6

ごめんなさい、#5の説明は違っています。書き換えます。 1)左側が0なら0 2)左上が1、かつ、左下が1なら2 3)左下が0なら3 4)残りは1 言い換えれば、 ◆2)は以下の場合です。  1  1   1 ◆3)は  0  1   0 または  1  1   0 または  0  1   空欄 または  1  1   空欄 ◆4)はそれ以外ですので、 左下に0,1、空欄以外の文字、数値が埋まった場合です。 取りうる条件(組み合わせ)を限定列挙してくれれば 直した式を示せると思います。

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.5

1)左側が0なら0 2)左上が1、かつ、左下が1なら2 3)左下が0なら3 4)残りは1 言い換えれば、 2)は以下の場合です。  1  1 ここが2  1 3)は  0  1 ここが3  0 または  1  1 ここが3  0 4)は  1  1 ここが最終行のときに3  または  0  1 ここが最終行のときに3  つまり、最終行が1の時です。

noname#251202
質問者

お礼

ありがとうございました!

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.4

>1のグループが1つしかないケースはありません。 であれば、示した数式でいいと思います。 どこか、期待と異なる結果の行はありますか?

noname#251202
質問者

補足

大丈夫でした。大変助かりました。ありがとうございました。 後学のため...最後のネストの偽の場合が1である理由は何でしょうか?

  • SI299792
  • ベストアンサー率48% (714/1476)
回答No.2

画像の様な、1行目の空いた表でいいですか。 B2: =(COUNTIFS(A:A,A2)>1)+0 C2: =B2+(A1=A2)+(A2<>A3)*B2 下へコピペ。

noname#251202
質問者

補足

ありがとうございました。表はこのとおりですが、B列は既に入力されています。 教えてくださった関数はなじみがないので、これから勉強しようと思います。 あと、最初の方の回答を見て、B列だけを使う方法がいいなと思いました。恐縮ですが、よろしければA列はないものとしての方法もご教示頂けると大変助かります。

  • kon555
  • ベストアンサー率52% (1751/3360)
回答No.1

 IFS関数で対応できますね。貴方が書かれた条件の「先頭行,途中の行,最後の行」というのは、上下のセルを参照すれば判別できます。  B列が1かつ、B列の1つ上のセルが0なら『1』みたいな感じです。 https://dekiru.net/article/14285/

noname#251202
質問者

補足

ありがとうございました。 大変申し訳ありません! エクセルのバージョンを書き忘れました。IFSは無いです。もしよろしかったらIFのネストでの数式そのものを教えて頂けないでしょうか?

関連するQ&A

  • EXCEL連続した回数のカウント

    エクセル初心者です。 連続した数字の回数のカウントの仕方が分からず困っております。 A列に0と1が50個並んでいます。 50個の0と1はその並び順が変化します。 1が先頭から5個以上、連続して並んだ時に、その1が連続した回数を特定のセル(例えばB1)に表示するようにしたいのです。 下の例1ではA3から1が8個連続していますので、B1のセルに8が入るようにしたいのです。 並びが変わりますので、先頭のA3が0の例2や、1が5個以上連続しない例3の場合は、B1のセルは空白のままになるようにしたいのです。 1が先頭のA3から5個以上連続した時だけ、その先頭から連続した回数(個数)を数えるようにしたいのです。 どうぞよろしくお願いします。 (例1)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 10行 1 11行 0 12行 0 ・ (例2)   A列   B列   C列・・ 1行 2行  3行 0 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 ・ (例3)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 0 8行 0 ・

  • 2つの数字の変化を読み取るエクセル関数はありますか

    エクセルの関数についてです。2つの数字の変化を A列  B列 100    1 103    1 109    1 120    1 105    -1 102    -1 120    1 123    -1 ・    ・ ・    ・ ・    ・ となっている時に,以下の2つの条件を満たす式を作ることはできますでしょうか。 (1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す (2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次は,B7なので120,次はB8なので123…と 数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出すようにしたいのです。 やはりマクロを組まないといけないのでしょうか? 分かりにくかったら申し訳ございません…

  • Excel関数、VBA

    A列に数字を入力するとB列に合計が出るようにしたい。 但し、条件があります。 数字の入力範囲はA1からA20まで。 B列の合計はA列の数字が連続した部分の最後に表示。 例 A列 B列 10 10 10 30 20 20 10 30 40 上記のように数字の入力は1行だけの時もあり、5行の時もあるので次の空欄までの合計をB列に表示したい。 VBでも関数でも構いませんので、どなたか詳しい方教えて下さい。

  • エクセルの関数についてです

    大変恐縮ですが、エクセルの関数について教えていただきたいと思います。 例 A B C D 1 175 141 210 98 2 47 70 417 39 3 64 845 32 626 4 79 194 54 85 5 224 68 85 110 上記A列からD列の数字が1行目から5行目まで5セットあります。 その中でAはBより大きくCより小さい(B<A<C)なおかつBはAより小さく Dより大きい(A>B<D)。 と、この条件を両方満たしている行だけを抽出したいと考えております(例では1行目が該当します)。 手元に約6万行分のデータがあり、何とか関数で処理したいものの詳しく分からず困っています・・・。 お忙しいところ申し訳ございませんが、どなたか関数をご存じでしたら 教えてくださると幸いです。 よろしくお願い致します。

  • EXCELの関数

    EXCELで、Aの列に○、Bの列に×がある行のCの列の数字を返す関数の使い方があれば、教えて下さい。 AとCの二つの列だけだと、VLOOKUPという関数を使えばAが○の時のCの数字を返す事ができるという事までは分かりましたが、Aの列に○がある行が2つ以上ある場合(Aの列が○で、Bの列が△である行を無視したい場合)、そのまま使うことができなくて困っています。 かなり初心者なので、申し訳ありませんが、よろしくお願いします。 例 ○   △   5 ×   □   3 ○   □   4 ○   ×   1 上のような行が無数に並んでいる場合で、左の列と真ん中の列の組み合わせが1つしかない時、左の列と真ん中の列の文字を指定した時の右の列の数字を返したい。

  • エクセルの関数について教えてください

    エクセル関数について教えてください。 下記に入れる関数がわからず困っています。よろしくお願いいたします。 (1)B列→A列に名前を入力したら自動でB列には順番に番号が入るようにしたいです。番号は、前の行から引き続きで入れたいです。例えば、次に名前が入った場合は8になります。 (2)D列→入社日から換算して自動に勤続年数が入るようにしたいです。また、いつ開いても自動更新できるようにしたいです。 (3)H列→G列の合計金額が(sheet2)のB列~D列の間に値する場合は、(sheet2)のA列の番号が自動で入るようにしたいです。(5列6列目は省略していますが実際には数字が入ります) ただし、(sheet2)のD8(630,000)以上の数字が入った場合は、すべて620にしたいです

  • エクセル関数の詳しい方ご教示ください。

    エクセルの詳しい方、ご教示ください。 A B C D E F G(表示したい列) 1行目 2 3 5 7 9 2 =知りたい関数 2行目  4 5 8 9 1 2 上記のようなランダムな数値データがあり、 ・Aの列に表示している数字の数だけ、 ・Bから右の列に移動した数字を、 ・Gの列に表示したい と、思っています。 例で考えると、 G1のセルは7 G2のセルは2 と表示されるイメージです。 Gにはどのような関数を使えばよいでしょうか?

  • エクセルの関数で特定の数字の利用回数を数える

    複数のセル内に入っている数字の利用回数を数える 関数を教えてください。 (例)A列の1行目から3行目に入っている数字に対して    利用されている数字ごとに利用回数を求める。   |A 列| 1行|12345| 2行|135| 3行|125| 4行|関数1| 5行|関数2| 6行|関数3| 7行|関数4| 8行|関数5| 上記での結果は以下のようになります。 関数1は1の件数を数える⇒例では3件 関数2は2の件数を数える⇒例では2件 関数3は3の件数を数える⇒例では2件 関数4は4の件数を数える⇒例では1件 関数5は5の件数を数える⇒例では3件 よろしくお願いします。

  • エクセル グループ員の内容を判別する関数

    次のエクセルの関数を教えてください グループ名は数字6桁です。 グループの構成員は1~6人で、決まっていません。 構成員の種別を0,1,2,3,4,#n/aの5種類に分けました。 各グループの内、構成員が0と1、もしくは1だけの種別で構成されているグループを割り出したいのです。 例 列A      列B グループ名   構成員 123456     0 123456     1 123456     0 111111     0 111111     0 222222     2 222222     0 222222     1 333333     1 333333     1 444444     #n/a 444444     1 444444     1 555555     3 555555     4 666666     1 この場合は、抽出されるグループは次のものです。 123456 333333 666666 関数でできるでしょうか。

  • エクセル関数

    こんにちは。 次のような場合エクセルでどのような関数を使えばよいのか教えてください。 例>A列に1,2,3の3種の数字がある場合、それに対応するB列(A1ならB1、A5ならB5)において    A列の条件に合うB列の数値の和。 A列が1になっているB列対応セルの数値のみの和を知りたい場合に使う関数です。 意味、分かっていただけるでしょうか? よろしくお願いいたします。

専門家に質問してみよう