人気マンガがだれでも無料♪電子コミック読み放題!!

式の中の参照部分を、D1のセルの内容によって変えたいです。
下記が実際の式なのですが
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]A!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")

この式の [工場在庫.xlsm]A! の部分をD1のセルから持ってくるにはどうしたらいいかがわかりません。
D1のセルが[工場在庫.xlsm]B!だったら
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]B!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")
としたいです。
ご教授お願いいたします。

A 回答 (2件)

こんにちは



簡単にやるなら、INDIRECT関数を利用して参照範囲を可変にすればよさそう。

[工場在庫.xlsm]A!$D$3:$D$1000
  ↓ ↓
INDIRECT(D1 & "$D$3:$D$1000")

ただし、INDIRECT関数等は揮発性関数と言われる種類ですので、他の方の質問でこのような(↓)ものもありますのでご注意。
https://oshiete.goo.ne.jp/qa/10893054.html
    • good
    • 1

範囲の変更に関しては、№1さんの書かれているINDIRECT関数を使うのが一番やりやすいと思います。



ところで、VLOOKUP関数でなくてもI6のデータをそれぞれのシートのD列からCOUNTIFで1個(以上)あるかどうかを判定すればいいのでは?
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QINDIRECT関数の代替方法は?

先に本スレッドで下記数式を教わり問題を解決することが出来ました。
  =SUM(INDIRECT("E"&MATCH("AAA",A:A,0)&":"&"E"&MATCH("AAA",C:C,0)))
ただ、このINDIRECT関数により、ブックに変更がなくても終了時にブックの保存の要否が尋ねられます。
これを回避するためにINDIRECT関数の使用を止めたいのですが、その方法をお教えいただきたくお願いします。

Aベストアンサー

ちょっと気になったので一言だけ。
別の人がこのシートを使って試算をしたとします。保存しなければいいやと思ってバッテンをクリックしたら「保存しますか」のメッセージが出ずに、いきなり保存されてしまいました。ってことのなりませんか。
ここは作業列を作ってシンプルな式で対応した方が安全な気がします。

Qエクセルについて。

次の数式を求める関数(下の方のプラン表)は、どんな数式を打てば良いのでしょうか?教えていただけると幸いです。

Aベストアンサー

単純な足し算ですよね。
添付画像のように作ったとして

[C8]=SUM($B$2,C$7,$B8)

これを[C8:F12]の範囲にコピーすればOK。

通常、数式のセルは、コピー貼り付けすると、移動先に応じてセルアドレスが変わってしまいますが、
「$」をつけることで、固定することができます。

上の式だと、どこに移動しても

$B$2 は B2 を参照するように固定される。

C$7 は 7行目 を参照するように固定される。
(式を下にコピーしても、7行目に固定される)

$B8 は B列 を参照するように固定される。
(式を右にコピーしても、B列に固定される)

ということになります。
$をつけて参照先を固定するのを「絶対参照」、
つけていない普通の場合は「相対参照」、
と言います。
より詳しいことは、このキーワードで検索して調べてみてください。

金額表示については、セルの書式から、
分類:通貨
記号:\
にしてあります。
実際のセルに「\」は入力されていません。

Q月末の自動計算

月末火曜日の日付をスタートとして稼働日数を求めたいと思っています。

10月なら9/25~10/30まで
11月なら10/30~11/27まで
12月なら11/27~12/25までの日数を計算したいです。

月末水曜日になると当月の日数に自動で計算が切り替わるよう計算することは可能でしょうか。

わかる方がいれば教えていただきたいです。
※土日は日数に含んでOKです。

Aベストアンサー

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょうか?
その場合は、式中の「TODAY()」の部分を対象の日(=シリアル値)に置き換えればそのまま同じ計算が可能なはずです。
例えば、対象の日がA1セルに入力されているとするなら、TODAY()を全てA1に置き換えればよいといった感じです。

>ただ、水曜日になったら前日の火曜日分も含めて計算してほしいです。
翌日の水曜日を2日目と計算したいという意味でしょうか?
(No1の説明を読んでいただければわかりますが)現在の式は、水曜日は1(日目)と表示される式になっています。
修正したい場合は、No1の式より常に1日多い値になれば良いだけなので、式の最後に「+1」を加えれば、お求めの結果になると思います。

>とても複雑な回答で解読できなかったので教えていただけると幸いです
式は少々長いですが、全体としての構成は、単純にIFで場合分けした式になっています。
ご参考までに、大雑把な構成を言葉で示すならば・・・
『対象日(今日)がその月の最終火曜日より前なら、前月の最終火曜日からの日数を数え、後ならその月の最終火曜日からの日数を数える』
という式になっています。

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょう...続きを読む

Qエクセル 年数の計算で ○○年○○ヵ月と計算した時 桁をそろえたい

現在の日にちと誕生日を引き算し

○○年○○ヵ月と表示させている表があるのですが

10か月
9か月
11か月
2か月
等と表示され桁がそろわないので醜いです
上手く桁をそろえる方法があるでしょうか?

下記のような計算式を使用しています
=IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")

Aベストアンサー

No.2の回答者です。
年については、二桁表示にしないでもよいかも。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")

これでよければ、以下のように修正します。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")

No.2の回答者です。
年については、二桁表示にしないでもよいかも。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")
または
 =IFERROR(IF(AL29,DATEDIF(AL29,$F$2,"Y")&"年"&TEXT(DATEDIF(AL29,$F$2,"YM"),"00ヶ月",""),"")

これでよければ、以下のように修正します。
 =IFERROR(IF(AL29,TEXT(DATEDIF(AL29,$F$2,"Y"),"##年")&IF(DATEDIF(AL29,$F$2,"YM")<10,TEXT(DATEDIF(AL29,$F$2,"YM"),"_00ヶ月"),DATEDIF(AL29,$F$2,"YM")&"ヶ月",""),"")
または...続きを読む

QExcelで日付を変更したら中身(6行めから13行目)も移動させるのは可能でしょうか?

画像にありますように作業の管理をしています。実際はひとつのシートに
作業が1~10くらいまで入っています。
そして日付は常に6ヶ月ほどはいっています。

これまではすべて手作業で作っていました。
先日、日付の入力を楽にしたい、という質問をさせていただいてこちらでアドバイスをもらい
E5セルには
=IF(DATE($C1,$E1,COLUMN(A1))<=EOMONTH(DATE($C2,$E2,1),0),DATE($C1,$E1,COLUMN(A1)),"")
とはいっています

今回、1月スタートの表示をするのですが開始月に2019年1月と入力すると4行目・5行目の月日は変更されますが、当然中身(6行めから13行目)は11月のままです。
列削除するとD列に計算式(簡単な人数管理をしています)が入っているので計算が狂ってしまいます。

そこで質問タイトルにありますような方法はVBAを使わないとできませんか?
私はVBAの知識がほとんどありません。

もっとシンプルに列非表示して日付は手入力でも良いのではないか?と思えてきました。
こちらの表は毎月1度しか印刷しません。

何かお知恵をお貸しいただけるとうれしいです。
よろしくお願いします。

画像にありますように作業の管理をしています。実際はひとつのシートに
作業が1~10くらいまで入っています。
そして日付は常に6ヶ月ほどはいっています。

これまではすべて手作業で作っていました。
先日、日付の入力を楽にしたい、という質問をさせていただいてこちらでアドバイスをもらい
E5セルには
=IF(DATE($C1,$E1,COLUMN(A1))<=EOMONTH(DATE($C2,$E2,1),0),DATE($C1,$E1,COLUMN(A1)),"")
とはいっています

今回、1月スタートの表示をするのですが開始月に2019年1月と入力すると4行目・5行...続きを読む

Aベストアンサー

ガントチャートですね、

其のまま、其の物では、
無いですが、

表示日付範囲を、
自由に 変えれるものを、
持っております。


少し、
手を 入れられれば、
想いのままに 出来るのでは?

ファイル、
https://1drv.ms/x/s!AjviygfJDgV_2xQEeZL1QSe8XBTV

尚、
ファイルですが、
一度、
Excelで 開き、
ローカルに 別名保存してください。

別名での ローカルへの、
保存で ないと、
意味が ないですよ。


そうすれば、
閲覧も 編集も、
可能と なるものと、
思います。

Qエクセル 特定の文字がある複数の行に関数を入力したい

VBAについて教えてください。

A列に”WH”という文字が含まれていたら、
I列に”=VLOOKUP(A5,[材料使用予定表マクロ.xlsm]フタミ箱集計!$E$3:$O$200,6,FALSE)”
という関数を入力したいです。

[材料使用予定表マクロ.xlsm]フタミ箱集計は入力したいブックとは別のブックです。
A列に”WH”は複数あります。
全データは2000行あります。

ど素人が調べてやってみても時間が過ぎるばかりでした・・・
お力を貸してくださいm(__)m

Aベストアンサー

もしくは、IF関数でA列のセルに”WH”という文字が含まれていたらVLOOKUPの式、そうでなければ空白(か、お好みの結果)という式を全部に入れるとか。

>ど素人が調べてやってみても
どういうことをやったみたのかくらいは書いていただきたいですね。

Q万年カレンダーについて。

次のexcelのデータで、おかしなところがありましたら、教えていただけると幸いです。
https://fire.st/9Il0GsR

Aベストアンサー

>確かに35行は、緑になりました。どうしてそうなるのでしょうか?教えていただけると幸いです。
添付の画像を参照ください。
2018年6月の例ですが、C35へ
=COUNTIF(祝日,A35)
と入力しています。結果は、1048470が表示されます。
これは、=COUNTIF($Y:$Y,A35)と同じことです。(祝日の範囲がY列全体の為)
A35は空白なので、Y列の空白の部分がカウントされます。その為、1048470になります。
COUNTIF(祝日,A35)の結果が0でなければ、判定は真なので、色がつく条件式が成立します。
そのため、緑になります。

>すみません。COUNTIF 関数のみで、祝日に色をつけるとするとどうすれば良いのでしょうか?教えていただけると幸いです。
祝日の範囲を、空白を除いて、正確に定義しなおします。
一旦、祝日の名前を削除し、実際に祝日の日付が入力されているセル範囲Y3:Y107を、祝日の範囲にします。
(つまり、Y列全体をやめて、$Y$3:$Y$107にします)
そうすると、COUNTIF 関数のみで祝日に色をつけることができます。
祝日の名前を削除する方法は、下記を参照ください。(削除せず、変更することも可能です)
https://www.wanichan.com/pc/excel/2016/8/47.html

COUNTIF 関数のみで、祝日に色をつけるようにした場合は、祝日の追加が発生すると(2023年以降分の祝日の追加など)、Y列の範囲が変わるので毎回、それにあわせて、祝日の範囲もかえる必要があります。

>確かに35行は、緑になりました。どうしてそうなるのでしょうか?教えていただけると幸いです。
添付の画像を参照ください。
2018年6月の例ですが、C35へ
=COUNTIF(祝日,A35)
と入力しています。結果は、1048470が表示されます。
これは、=COUNTIF($Y:$Y,A35)と同じことです。(祝日の範囲がY列全体の為)
A35は空白なので、Y列の空白の部分がカウントされます。その為、1048470になります。
COUNTIF(祝日,A35)の結果が0でなければ、判定は真なので、色がつく条件式が成立します。
そのため、緑になります。...続きを読む

Q()と文字を分ける

M列に数字と()の組み合わせがあります
N列に数字のみ
O列に()を表示したいのですが
NとOの関数を教えて下さい。

例)
1L2R3L1 (A)を O列に1L2R3L1 N列に(A)
23 (B)を O列に23 N列に(B)
31S1 (C) O列に31S1 N列に(C列)
6S5R4L3 O列に6S5R4L3 N列は()が無いので空白に

数字と () の間は半角のスペースがあります。

よろしくお願いいたします。

Aベストアンサー

N1セルに『=IFERROR(MID(M1,FIND("(",M1),LEN(M1)),"")』        ・・・()付き
O1セルに『=IF(LEFT(M1)="(","",IFERROR(LEFT(M1,FIND("(",M1)-2),M1))』 ・・・()なし
そして、N1~O1セルを下方向にコピペです。

Q【Excel】VLOOKUP検索値が複数あった場合、下の値を表示したい

D列のコードをA列の中で検索し、
B列の値をE列に表示したいのですが、
VLOOKUPを使用した場合、検索値の最初の行が表示されます。
同じコードの場合、一番下の行の値を表示するにはどうしたら良いでしょうか。

Aベストアンサー

添付画像の通りの並びが前提となってしまいますが、こんな感じでどうでしょう。

【E2セル】=INDEX(B:B,MATCH(D2,A:A,0)+COUNTIF(A:A,D2)-1)

QExcelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが

Excelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが何か方法はありますか?

あるセルに元の数値があってそれをベースに別のセルで計算を行っています。但しその元の数値を印刷時に見えなくし、代わりに任意の文字列を表示したいのです。

例えば社内でのみ閲覧可能な定価相当の数値があり、これにある掛け率で売価を計算しているとします。当然この売価は印刷時において見える必要があります。一方元の数値の入ったセル部分には実際には社内定価の数値が入っているのですがこれを表示するのではなく「オープン価格」として表示したいケースです。
いい方法はありますか?

Aベストアンサー

「セルの書式設定」-「ユーザ定義」で、”オープン価格” と定義してみては。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング