『シートの数を数えたい』(yo) いつもお世話になってます。 「S」と「E」にはさまれたシートがあります。 「0501」「0502」「0503」と毎月増えていきます。 その後ろに累計と平均を出しており、この「S」と「E」ではさまれた シート数で割って平均を出したいのですが、このシート数を数える関数はありますか? マクロではなく、セルに関数を入力して使いたいのですが。 ご教授お願いします。 ---- どこか共通のセルに 1 と入力しておいて合計するのはどうでしょう? (純丸)(o^-')b ---- やっぱりそういう方法しかないですかね? (yo) ---- ユーザー定義関数もダメなのでしょうか? (INA) ---- すいません。 ユーザー定義関数とは何でしょうか? 自分で関数を定義するという事ですか? (yo) ---- 統合を使えばシート数を数えなくても良いのじゃないでしょうか。 (川野鮎太郎) ---- [川野鮎太郎]さんとごっちん 横から割り込んでスミマセン。 エクセルの学校[ユーザー関数入門]も見てください。 http://www.excel.studio-kazu.jp/lib/e1iw/e1iw.html (kazu) ---- 相変わらずの4.0マクロ関数を利用しての方法。 まず4.0マクロ関数に名前を付けます。 挿入>名前>定義で 名前   ShNum 参照範囲 =MATCH(GET.CELL(32,E!$A$1),GET.WORKBOOK(1),0)-MATCH(GET.CELL(32,S!$A$1),GET.WORKBOOK(1),0)+NOW()*0-1   各シートのA1セルの平均をだしたい場合は =SUM(S:E!A1)/ShNum   シートS、シートEではさんだシートの串刺し計算の平均値を求めることが出来ます。 ご質問に合わせてシート名は全角S、Eとしていますので シート名の全半角に注意して入力してください。 (みやほりん) ---- みなさん有難うございます。 こんな方法があるのですね。 できましたら、参照範囲の関数の意味を教えて下さい。 「32」は何を表しているんですか? ----   【GET.CELL(検査の種類,範囲)】 セルの情報を調べる4.0マクロ関数。「32」は検査の種類を表す番号で 「範囲」で指定したセルの存在するブック名とシート名を 「[ブック名]シート名」の形で返します。   【GET.WORKBOOK(検査の種類)】 ワークブックの情報を調べる4.0マクロ関数。「1」は検査の種類を表す番号で ブックに含まれるシート名を「[ブック名]シート名」の形で配列(リスト)として返します。   【MATCH(検査値,範囲,検索方法)】 「範囲」から「検査値」を検索してその位置情報を数値で返します。 MATCH(GET.CELL(32,E!$A$1),GET.WORKBOOK(1),0)では ブックの中のシート名のリストからEのシート名を完全一致で検索します。 Eのシートが左から5番目にあれば5が返ります。   【+NOW()*0-1】 4.0マクロ関数はワークシート上で使用した場合、単体では入力した時にしか計算しません。 つまり、通常の関数と違って再計算しないので、常に再計算の対象になるNOW関数と組み合わせます。 NOW()*0で常に0を足すので、本体の計算には影響ありません。 最後の「-1」はシートSが2番目、シートEが5番目の時は5-2=3になりますが、 間には3,4番目の2シートしかないはずなので、その帳尻あわせのための減算です。   MATCH(GET.CELL(32,E!$A$1),GET.WORKBOOK(1),0)は「シートの位置」を 調べるものとしておぼえており、応用が出来ないものかと思って ついつい、投稿してしまいましたが、純丸さんの方法が正解のような気がします。 今回の場合はわかりにくいワリには純丸さんの方法と結果は同じ・・・。 「これでなければできない」という方法ではないということです。   だから、 >やっぱりそういう方法しかないですかね? そうおっしゃらずに。捨てたものではないですよ。 4.0マクロ関数は知らない人が見た場合には全く調べようがない、 という最大の欠点がありますから。 (みやほりん) ---- ご丁寧な解説、本当に感謝します。 勉強中の身ですので、知識が増える事が楽しく思えます。 色々なケースに応じて何が一番ベストか、その選択をするのも必要という事ですよね。 今は選択肢がない状態ですので、選択肢を増やせる様、みなさんにご指導頂きながら頑張りたいと思います。 ありがとうございました。