現在Excelで、少し複雑な入力規則を作成しようとしてます。
一つのファイルには一つの入力用シートと複数の管理用シートがあります。
両者は全く同じフォーマットを持ってますが、
管理用シートのセルは決まったセルにだけYが入っており、
入力用シートの全く同じ位置のセルが入力可能であることを指しています。
(入力用シートで入力不可セルの場合は、管理用シートでは空欄)
各シートには会社名(C7)と部門名(C8)の情報を持っており、
会社・部門ごとに管理用シートのYの箇所や数が異なるため、
入力用シートのC7とC8のセルの値次第で、
適切なシートのYを参照する入力規則を作成したいのです。
(各管理用シートは「管理会社名部門名」となっております、例えば管理A社B部門など)
私は入力規則でユーザー設定を選び、
空白を無視するのチェックを外した上で以下の数式を入れました:
(入力セルはE22のセルから始まってます)
=INDIRECT("管理"&CONCATENATE($C$7,$C$8)&"!"&ADDRESS(ROW(E22),COLUMN(E22),1))="Y"
この入力規則はきちんと機能しておりました。
なお、この作りには横に時間の概念が入っており(E列は2016年、F列は2017年など)
年によっては列丸ごと入力不可とするルールがあります。
私は入力用シートの16行目にYとNを入れた後(E16,F16,G16...)、
このルールを入力規則に追加するべく数式を以下のように修正しました:
=IF(E$16="Y",IF(INDIRECT("管理"&CONCATENATE($C$7,$C$8)&"!"&ADDRESS(ROW(E22),COLUMN(E22),1))="Y","Y","N"),"N")="Y"
すると「数式はエラーと判断されます。。。」のポップアップが出てきて機能しなくなります。
セルに直接上記の数式を入れた場合には正しくTRUE或いはFALSEが反映され、
また入力規則でINDIRECT~を管理A社B部門!E22など直接参照シートとセルを記載した場合にきちんと機能するため、
数式自体は間違っていないかと思います。
そのあとも色々試してみて、
もしかして入力規則の数式欄には文字制限があるのではないかと思い始めたのですが、
問題の所在が分かる方、どうかお願いします!
(わかりにくい説明になっているかもしれないので、
不明な点があれば仰っていただければ追記いたします)
No.3
- 回答日時:
確かにセル上で正しく動作する式でも入力規則ではNGになりますね。
どうも条件文(IFやAND)の中のINDIRECTの中のROW()、COLUMN()関数が悪さをしているようです。それらの関数を使わなければ正しく動作するようなので、こんな感じでいかがでしょうか。仕様を勘違いしていたら、ごめんなさい。=AND(E$16="Y",INDIRECT("管理"&CONCATENATE($C$7,$C$8)&"!RC",FALSE)="Y")
No.2
- 回答日時:
入力の可不可が リストを展開するまで分からない仕様というのは 扱いづらいよう
に思います。なので銀鱗さんと同意見です。
> もしかして入力規則の数式欄には文字制限があるのではないか
ひょっとして名前定義していないのですか?
入力規則のリストは Excel2007以降 名前定義しなくても使えるようにはなりま
したが 基本的には名前定義した方がいいです。
後 INDIRECT・ADDRESS関数の組合せは無意味です。 INDIRECTを R1C1参照
形式にすればいいだけなので。
INDIRECT("管理"&$C$7&$C$8&"!R"&ROW(E22)&"C"&COLUMN(E22),FALSE)
というか列は固定じゃないんですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
追記:
イメージとしては例えば商品ごとの売上を記載するのが目的で、
縦軸は商品名(A,B,C...)、横軸は年です。
全ての会社・部門が全ての商品を取り扱っているのではなく、
またずっと同じ商品を取り扱っているわけではないため、
各会社・部門の管理用シートではその年に扱っている商品のセルだけにYがついています。
しかし集計の目的上、管理用シートにはYが入っているにも拘らず
特定の年のデータが全く不要になるケースがあるため、入力用シートの16行目にYとNを入れてます。
(このY/Nは変動するため、入力規則に組み込んでおく必要があります)