• ベストアンサー

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

エクセル(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

  • excel 2000での数字の表示

    日々外部よりデータを取り込んでいるワークシートAの 2,000,000 と 2,000,000をSUM合計させ、4,000,000と表示させているたセルを、ワークシートBのセルに「=」で引っ張ってます。当然4,000,000と表示されていますが、ここを千円単位切捨ての4,000と表示させるにはどうしたらいいでしょうか?よろしくお願いします。「ツール」→「オプション」→「編集」の「小数点位置を固定」では出来なかったと思います。

  • Excelで条件に合った数字の数をカウントしたいのですが・・・

    エクセルで【表1】のような表がある時、各品名別に在庫数<ゼロ のセルを、 関数を使ってカウントしたいのです。 【表1】 日付 品名 販売数 在庫数 1   A   30   52 2   A   20   22 3   A   25   2 4   A   15   -23 1   B   40   48 2   B   55   8 3   B   50   -47 4   B   45   -97 1   C   35   10 2   C   20   -25 3   C   40   -45 4   C   20   -85 但しこの時条件があり、品名ごとにカウントする期間が異なります。 別表で、【表2】のように 期間が入力された表があり、 品名Aなら 1~2日目のマイナスの在庫数を、 Bなら 1~3日目のマイナスの在庫数をカウントしたいのです。 【表2】 品名  期間 A    2 B    3 C    4 最終仕上げたいのは【表3】で、「在庫がマイナスになった期間」の列に入れる 関数を教えて頂きたいのです。 【表3】 品名  在庫<ゼロ になった期間 A     0 B     1 C     3 COUNTIF関数とOffset関数などを使ってみたのですが、 【表1】の日付が品によって 3になったり10になったりと変化するため、 引数の「基準」をどうすればいいのかが分からずに頓挫してしまいました・・・。 長々と分かりにくい説明になってしまいましたが、助けて下さい。 よろしくお願いします。

  • エクセル、シート参照時のセルのフォントサイズについて質問します。

    エクセルについて教えて下さい。 VLOOKUP関数を使ってシートAのセルにシートBの表中のデータを表示したいのですが、シートAのセルの大きさは一定なのに対して、シートBの表中の文字数がまちまちなので、検索するデータによって、表示がシートAのセルの半分だったり、はみ出したりします。これでは見栄えが悪いので、シートAのセルに文字がぴったりと収まるようにしたいのです。シートAのセルのフォントサイズを変更するとその時はいいのですが、シートBの表中のデータがすべて同じサイズになってしまいます。そこで、シートBの表中のフォントの大きさを個々に変えてみたのですが、それがシートAのセルに反映されません。どうすればいいですか?説明が下手で上手く状況がお伝えできたか心許ないですが、よろしくお願いします。

  • Excel別シートの数字

    よろしく御願い致します Excel2007です 例えば、シート1のA2に数字が入っています(100) この数字をシート2のC7(90)にシート2のB2(10)を引いた数字を入れたいのですが 関数は如何すれば良いでしょうか、文章では解りずらいので 例 シート1のA2セル(100)-シート2のB2セル(10)=シート2のC7に入る数字(90)

  • セル内の数字の数、セルを分割させたい

    こんにちは。 以下のようなことをしたいときに、使える関数またはマクロがあればお助け頂けないでしょうか。 シート1には名前列(A列)と個数列(B列)があります。 Aさん,3 Bさん,2 Cさん,1 ・ ・ ・ というイメージです。 次にシート2に以下のように表を作成したいです。 Aさん Aさん Aさん Bさん Bさん Cさん ・ ・ ・ シート1の個数列にある数字の数の分セルを作成し、 且つそこに氏名を入れたいです。 手作業でやるには人数が多すぎ、困っております。 何かの関数でできないかと色々試そうとしていますが、 良い案が浮かびません。 お力をお貸し頂けると大変助かります。 よろしくおねがいします。

  • サイコロAとBを同時投げてA出目>B出目は何通り?

    場合の数の問題です。 サイコロAとサイコロBを同時投げて、Aの出目がBの出目より大きくなのは何通りですか? という問です。答えは6P2=15らしいですが、どうして、6P2という式になるのか教えてください。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • Excelで行方向に並んだデータを列に

    こんばんは。 質問タイトルをどう書いていいのかわからず、わかりにくくてすみません。 こういうExcelの表があります。 A表 A列 B列 No  code   1  10 1  11 1  12 2  10 3  14 4  14 4  15 それを次のようにしたいと思ってます。 B表 A列 B列  C列  D列 No  code1 code2 code3 1  10   11  12 2  10 3  14 4  14   15 A列にあるのがサンプルNoで、それぞれに対応するコードが縦に並んでいる(A表)のを、サンプルNoを重複させずにコードを横に展開(B表)したいのです。 今は各サンプルで重複しているコード数を出して、2以上だったらif関数で横に持っていくという非常に面倒な方法を取っています。 他によい方法はないでしょうか。なお、マクロは嫌がられるので使えません。 データ数よりもシート数(1シートに1つの表)が多く、できるだけ簡単な方法があれば教えていただけますでしょうか。 以上よろしくお願いします。

  • エクセル関数で検索能力がある関数を教えてください。

    「シート1」と「シート2」があります。 「シート1」には   1      2 A 通信費  課税仕入 B 借入金  対象外 C 支払利息 非課税仕入 のような表があります。 「シート2」には   1     2 A 通信費 B 交際費 となっていたとします。 この場合、「シート2」のセルA2に、 VLOOKUP関数で「シート1」を参照し、「課税仕入」を表示させることはできるのですが、 「シート2」のセルB2にセルA2の関数をコピーした場合、 「シート2」のセルB1にセルに表示されている「交際費」は「シート1」の表には登録していないため、セルB2にはエラー値が表示されてしまいます。 「シート1」の表に「交際費」を登録すればいいのですが、 自己都合上、「シート2」のセルB2に、 「シート2」セルB1の項目が「シート1」の「1列目」にあれば、「2列目」の項目を表示する。 「シート1」の「1列目」に該当する項目が無ければ、「シート2」のセルB2には「対象外」と表示するようにしたいのです。 言い換えますと、「シート2」の通信費は「シート1」にあるのでVLOOKUP関数で課税仕入を導くことが出来ます。 しかし、「シート2」の交際費は「シート1」に無いため、VLOOKUP関数をしようできません。 「シート1」に無い項目の場合には、「シート2」に「対象外」と表示されるような関数の式が知りたいです。 わかりにくい文章になってしまいましたが、よろしくお願いします。

  • Excel集計の反映

    こんばんは! いつもお世話になっています。  Excelで一つのbookに19sheetあり同じフォーマットの表で、 <例> sheet1は「A」が 1・sheet2は「A」が4・・・・という感じでsheet18迄、各sheetに集計した数がでています。 sheet19には「A」の数を出すセル(B10)に【同じセル番地のsheetの合計を出す関数「=SUM(sheet1:sheet18!B10)」】この様な感じで18枚のシートの合計を表したのがsheet19になっています。 そこで、フォーマットが違う別のbookのsheetに勿論、違うセル番地の「A」の数を出すセルにsheet19の「A」の値を反映できるのでしょうか?  ご存知の方いらっしゃいましたら教えて下さい。 初心者の為、お手数ですが具体的に教えて頂けると幸いです。  簡単に説明してしまった為、説明がわからない時は補足するので遠慮なく言って下さい。 宜しくお願いします。

専門家に質問してみよう