[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの数を数えたい』(yo)
いつもお世話になってます。
「S」と「E」にはさまれたシートがあります。
「0501」「0502」「0503」と毎月増えていきます。
その後ろに累計と平均を出しており、この「S」と「E」ではさまれた
シート数で割って平均を出したいのですが、このシート数を数える関数はありますか?
マクロではなく、セルに関数を入力して使いたいのですが。
ご教授お願いします。
どこか共通のセルに 1 と入力しておいて合計するのはどうでしょう? (純丸)(o^-')b
ユーザー定義関数もダメなのでしょうか? (INA)
統合を使えばシート数を数えなくても良いのじゃないでしょうか。
(川野鮎太郎)
[川野鮎太郎]さんとごっちん
横から割り込んでスミマセン。 エクセルの学校[ユーザー関数入門]も見てください。 https://www.excel.studio-kazu.jp/tips/0501/ (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マクロ関数は知らない人が見た場合には全く調べようがない、 という最大の欠点がありますから。 (みやほりん)
ご丁寧な解説、本当に感謝します。
勉強中の身ですので、知識が増える事が楽しく思えます。
色々なケースに応じて何が一番ベストか、その選択をするのも必要という事ですよね。
今は選択肢がない状態ですので、選択肢を増やせる様、みなさんにご指導頂きながら頑張りたいと思います。
ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.