• ベストアンサー

エクセルと関数について

エクセルと関数について エクセル2007で以下のような表を作成しました。 データはダミーです。 左が9月分の管理表で右が10月分の管理表です。 表は1月分から12月分まで作成しています。 1月から管理NOを付番していて、キャンセルがあれば 別の番号で管理しています。 そこで質問なのですが、右の表のA2に自動的に 前月の番号のつづき番号を付番できる関数はあるのでしょうか。 9月の一番最後の行が、キャンセルの番号だったときに 右の表(10月分)のA2に102と誤入力しないようにしたいのですが。 教えてください。

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 ↓の画像で説明させていただきます。 Sheet1の続きがSheet2ということにしています。 とりあえずSheet1のデータが1000行目まであっても対応できる数式です。 尚、配列数式になってしまいますので、この画面から直接Sheet2のA2セルに コピー&ペーストしただけではエラーになると思います。 Sheet2のA2セルに貼り付け後、F2キーを押す、またはA2セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 =IF(D2="","",INDEX(Sheet1!$A$1:$A$1000,MAX(IF(Sheet1!$D$1:$D$1000=D2,ROW($A$1:$A$1000))))+COUNTIF($D$2:D2,D2)) このA2の配列数式をオートフィルでずぃ~~~!っと下へコピーします。 これでSheet2のD列に「キャンセルなし」か「キャンセル」が入力されるたびに その連番が表示されるはずです。 以上、長々と書きましたが 参考になればよいのですが・・・m(__)m

aidorumary
質問者

お礼

大変助かりました。 完ぺきでした。 いつもありがとうございます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

質問表現は下記のようにして良いか。 毎月分は別シートにデータがある。 前月シートににある、ある列で「キャンセル」である列は除き、そうでない行の別列の一番大きい数(番号)を取り出す。 例データ Sheet2(先月のシート) B1:C8 「ああ」は「キャンセル」などのコメント文字列のつもり。 番号 コメント 23 ああ 24 20 15 ああ 22 26 28 ああ Sheet3(今月のシート)のB2とかに =MAX(IF(Sheet2!$C$2:$C$20<>"ああ",Sheet2!B2:B20,0)) と入れて、SHIFT+CTRL+ENTERキーの3つのを同時押しする。 結果 26

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

下記続き SUMPRODUCT関数はデータ量が多かったり(A:Aで列全体選択を行ったり)、多用すると動作が重くなるので =INDEX(Sheet1!A:A,MATCH(D2,Sheet1!D:D,0),0)+COUNTIF(Sheet1!D:D,D2) こんな方法でも可能です

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

=SUMPRODUCT(MAX(データA*(データD=D2)))+1 データAは前月sheetのA列データー範囲、データDは同D列データー範囲 キャンセル有り・無しどちらでも自動連番を付けます

関連するQ&A