• ベストアンサー

エクセルで、ある列に並んでいる各数字の間隔を表示させたい

エクセル(2003)を使ってます。 Sheet1に下のようなサイコロの出目の表があります。 (1日1回サイコロをふって、出た目を調べていく…) A B 1 年月 出目 2 2008/1/1 3 3 2008/1/2 4 4 2008/1/3 1 5 2008/1/4 1 6 2008/1/5 6 7 2008/1/6 4 8 2008/1/7 2 9 2008/1/8 5 10 2008/1/9 3 そしてSheet2に下のような表を作りたいのですが… A B 1 2008/1/9  現在 2  出目   出目の空き数 3 1 5 4 2 2 5 3 0 6 4 3 7 5 1 8 6 4 やりたいことはSheet2のB3セル~B8セルに サイコロの各出目の空き数(すなわちサイコロの各目が 最後に出てから何日間出ていないかの日数)を表示させたいのです。 ※ちなみにSheet1のA列は日々増えていきます。 Sheet2のB3セル~B8セルに入る関数を教えてください。 よろしくお願いします。m(_ _)m

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

  • ベストアンサー
  • saburo0
  • ベストアンサー率35% (76/216)
回答No.6

#1です。 #3の補足に対する回答ですが、#3の式でそのまま対応可能です。 Sheet1のB列とSheet2のA列へご希望の文字列を入力すると出来るはずです。 #5は残念ながら対応不可みたいですが。

umahiro
質問者

お礼

あっ!本当ですねっ(^▽^;) 試してみる前に質問してスイマセンでした。m( _ _ ;)m (式の内容がイマイチ理解できない自分が情けないです…) 何度もご回答をいただき本当にありがとうございました!! m(_ _)m m(_ _)m m(_ _)m

その他の回答 (5)

noname#204879
noname#204879
回答No.5

Sheet1     A    B  C D  E  F  G  H  I 1  年月   出目   _1 _2 _3 _4 _5 _6 2  2008/1/1   3     2 3  2008/1/2   4         3 4  2008/1/3   1   4 5  2008/1/4   1   5 6  2008/1/5   6             6 7  2008/1/6   4         7 8  2008/1/7   2     8 9  2008/1/8   5           9 10 2008/1/9   3       10 11 1.範囲 D1:I1 に左から順に文字列 _1、_2、_3、…、_6 を入力 2.セル D2 に次式を入力して、此れを右方にズズーッとドラッグ&ペ   ースト   =IF($A2>Sheet2!$A$1,"",IF("_"&$B2=D$1,ROW(),"")) 3.範囲 D2:I2 を下方にズズーッとドラッグ&ペースト 4.範囲 A1:I367 を選択 5.[挿入]→[名前]→[作成]を実行 6.“上端行”のみにチェックを入れて[OK]をクリック を Sheet1 に実行しておけば、Sheet2 のセル B2 に次式を入力して、此れを下方にズズーッとドラッグ&ペーストすればOKかと。 =A$1-INDEX(年月,MAX(INDIRECT("_"&A3))-1)

umahiro
質問者

お礼

素早いご回答ありがとうございます。 教えてもらった通りやってみたら出来ました。 いろんなやり方があるんですね。 とても勉強になります。m(_ _)m

  • saburo0
  • ベストアンサー率35% (76/216)
回答No.4

#1です。たびたびすいません。 #3での回答はB4セルの内容です。B4にご入力頂き、B3とB5~B8へコピー願います。 宜しくお願いいたします。

  • saburo0
  • ベストアンサー率35% (76/216)
回答No.3

#1です。 #2さんの回答を拝見させて頂き、大変参考になりました。 ただ、検証させて頂いた所、2008/1/9以外では不具合が出るようなので誠に勝手ながら修正させて頂きました。 =IF(OR(COUNTIF(INDIRECT("Sheet1!B2:B"&MATCH($A$1,Sheet1!A:A)),A4)=0,MAX(Sheet1!A:A)<$A$1),"無し",$A$1-MAX(IF(A4=INDIRECT("Sheet1!B2:B"&MATCH($A$1,Sheet1!A:A)),INDIRECT("Sheet1!A2:A"&MATCH($A$1,Sheet1!A:A)),""))) 配列関数ですので、Ctrl+Shift+Enter で決定 ご確認をお願いいたします。

umahiro
質問者

補足

素早いご回答、そして#2さんの回答を修正していただき ありがとうございます。式を貼り付けてみたら出来ましたっ!! #1さんにもうひとつ質問させてくださいm(_ _)m Sheet1のB2~B10の出目の列が3、4、1…のように数値でなく 1-2、1-3、1-4…や1-2-3、1-2-4、1-2-5…という文字列だった場合は どのような式になるかぜひ教えてください。 よろしくお願いします。m(_ _)m

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

配列関数になりますが B3セルに =A$1-MAX(IF(A3=Sheet1!B$2:B$100,Sheet1!A$2:A$100,"")) Ctrl+Shift+Enter で決定 下まで6個 コピィします。

umahiro
質問者

お礼

素早いご回答ありがとうございます。m(_ _)m

  • saburo0
  • ベストアンサー率35% (76/216)
回答No.1

Sheet3を新たに準備して頂き、そこで下記式を該当セルに入力し、A2,B2,C2を可能な限り下へコピー A2:=INDEX(Sheet1!A:A,C2+1,1) B2:=INDEX(Sheet1!B:B,C2+1,1) C2:=RANK(Sheet1!A2,Sheet1!A:A) D1:="Sheet3!B"&MATCH(Sheet2!A1,Sheet3!A:A,0)&":B65536" Sheet2において、下記式をB3に入力し、それをB8まで下へコピー B3:=MATCH(A3,INDIRECT(Sheet3!$D$1),0)-1 やや面倒ですが、これではいかがでしょうか。

関連するQ&A