• ベストアンサー

前半分の行には1,3,5,7…を、後ろ半分の行には2,4,6,8…を自動で入力する方法は

エクセル2000を使用しています。 C列に文具名が入力されている表があります。 別のシートにある約500種類の文具一覧の中から、 毎月末に、ある条件を満たした文具名だけをC列に抽出しています。 月によってC列に抽出される文具名の数は変動します。 各文具名のA列には1,2,3,4の連番を、 B列には前半分の行に1,3,5,7…を、 後ろ半分の行には2,4,6,8…を入力したいのですが、 自動で入力する方法があれば教えていただけないでしょうか。 A列  B列  C列  1   1  えんぴつ  2   3  消しゴム  3   5  三角定規  4   7  コンパス  5   2  下敷き  6   4  ボールペン  7   6  ノート  8   8 セロハンテープ 上の例では文具が8個ですので、 A列は1~8 B列は半分の4行目までは1,3,5,7 5行目からは2,4,6,8が入ります。 文具が奇数個の場合のB列は… 例えば11個の場合には、 1~6行目まで1,3,5,7,9,11 7~11行目まで2,4,6,8,10 が入ります。 C列に抽出される文具が500個近くなる月がありますが、 現在はA1,A2に1,2を入力してマウスで下にフィルコピー、 B列には、前半分の行まではB1,B2に1,3を入力し、 後ろの半分の先頭行と、その次の行に2,4を入力して それぞれフィルコピーしています。 抽出された行数に応じて、自動でA列、B列に番号をふる方法が ありましたら教えて下さい。 宜しくお願いします。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.6

[回答番号:No.5] の DOUGLAS_ です。  [ROW()] 関数を使うと、行のデータがずれるかも知れませんね。 B1: =IF(C1="","",A1*2-IF(A1*2>MAX(A:A)+1,EVEN(MAX(A:A)),1)) でお試しください。

tsukino060
質問者

お礼

DOUGLAS_さん 再度の回答、有り難うございました。 省エネ型があるなんて。。。 式が短い!ということしか今の私にはわかりません。。。 行のデータがずれるかも…という理由も 今現在は未知の彼方にあるように思えますが、 何とか理解できるよう勉強します。 有り難うございました!

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.5

では、私も省エネの式をお一つ。 =IF(C1="","",ROW()*2-IF(ROW()*2>MAX(A:A)+1,EVEN(MAX(A:A)),1))

すると、全ての回答が全文表示されます。
回答No.4

う~ん イマイチの出来 =IF(C1="","",IF(COUNT(A:A)+1>=A1*2,A1*2-1,A1*2-COUNT(A:A)-MOD(COUNT(A:A),2))) 参考まで

tsukino060
質問者

お礼

CoalTarさん この方法でも希望通りの結果が得られました。 本当に有り難うございました。

すると、全ての回答が全文表示されます。
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ B1=IF(C1="","",IF(A1=COUNT(A:A),INT(A1/2)*2,IF(B2=2,EVEN(COUNT(A:A))-1,B2-2))) ★下にコピー

tsukino060
質問者

お礼

お早うございます。 そして本当に有り難うございます! この方法でも希望通りの表ができました。 私の関数の知識は、How toサイトやヘルプを見て、 その時々に必要な知識だけを見つけて得たもので 非常に浅くマダラ状ですので、こんな複雑な式はとても作れそうにありませんが、一つ一つの成り立ちを勉強して理解していきたいと思います。 有り難うございました。;

すると、全ての回答が全文表示されます。
  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.2

B1 =IF(C1="","",2*MOD(ROW(1:1)-1,ROUNDUP(COUNT(A:A)/2,0))+1+(ROW(1:1)>ROUNDUP(COUNT(A:A)/2,0))) でもいいみたいです。ごめんなさい。 ...修正できないんですね。このサイト。

tsukino060
質問者

お礼

最速の回答、ありがとうございました!! 質問は初めてでしたので、説明も自信が無くて どんな回答があるのか心配していましたが 本当に嬉しくて感激しました。 関数の意味がわからないままコピー&ペーストしたところ 求めていた通りの結果が得られました。 お蔭様で随分時間が短縮できそうです。 本当に有り難うございました。 関数って面白いものですね。 時間のある時に教えていただいた方法を理解できるように じっくり勉強したいと思います。

すると、全ての回答が全文表示されます。
  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.1

__A_B______C_ 1_1_1__えんぴつ_ 2_2_3__消しゴム_ 3_3_5__三角定規_ 4_4_2__コンパス_ 5_5_4___下敷き_ 6_6_6_ボールペン_ __A_B______C_ 1_1_1__えんぴつ_ 2_2_3__消しゴム_ 3_3_5__三角定規_ 4_4_7__コンパス_ 5_5_2___下敷き_ 6_6_4_ボールペン_ 7_7_6_リラックマ_ A1 =IF(C1="","",ROW(A1)) 下方向・↓ B1 =IF(ROW(1:1)>COUNT(A:A),"",2*MOD(ROW(1:1)-1,ROUNDUP(COUNT(A:A)/2,0))+1+(ROW(1:1)>ROUNDUP(COUNT(A:A)/2,0))) 下方向・↓

すると、全ての回答が全文表示されます。

関連するQ&A