- ベストアンサー
エクセルで・・・part2
シートBである表を作成しています。 ここでシートBの名前は表2とします。 そのシートの16列に指定した文字が入ってきた場合が今回の対象となります。 シートB(表2)は完成したとします。(この時点ではシートAはまだありません) シートAの作成に入ります。(ここでシートAが作成されます)シート名は表1とします。 シートB(表2)の16列で設定した内容が当てはまればシートA(表1)のある指定したセルに指定した文字が入ります。 こういった流れなのですができるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >例えば、シートB(表2)の16列に"みかん"が入ってきたら、シートA(表1)のあるセルに"愛媛”と出力が出来ればいいのです。 前回のNo.1719355『質問:エクセルで・・・』の#4 さんの回答 =IF(COUNTIF(Sheet2!B:B,"*文字列*")<>0,"ccc","") #8 さんの =IF(ISERROR(MATCH("みかん",Sheet2!$P:$P,0)),"","愛媛") のどこがダメなのか、きちんと、ご指摘にならない限りは、先に勧めないのですね。 >1.列に関しては特に限定はありません。 列に限定しなければ、前回の#4 さんの COUNTIF で、 =IF(COUNTIF(Sheet2!A:P,"みかん")>0,"愛媛","") とすればよいはずです。
その他の回答 (3)
- zenjee
- ベストアンサー率47% (50/106)
>あらかじめその列に"みかん”が入ってきたときの設定を行いたい……。 「あらかじめ」とあるから、表2のある列に「みかん」が入ってきたときに表1の例えばA1に自動的に「愛媛」が表示されるよう前もってマクロの中に設定したい、ということですか。 私は補足要求という形を撮ってはいるものの、回答として、 =IF(ISERROR(MATCH("みかん",Sheet2!$P:$P,0)),"","愛媛") を提案し、 また前回のNo.1719355の#4 さんの回答でも =IF(COUNTIF(Sheet2!B:B,"*文字列*")<>0,"ccc","") という答を出されているんです。 この答は表1が出来てから入力するのだから、「あらかじめ」ではない。したがって求める回答ではない。つまりこういうことですか。 ダメならダメということを理由をあげてキチンと説明するべきではありませんか。 Wendy02さんのような超スペシャリストでさえ、そのことを仰っているんです。 回答を求めるなら回答者に対してもっと誠意をもって分かってもらうよう努力すべきだと思います。
お礼
あらかじめとはエクセルで2つのシートが存在し、そのシートは表1.表2を作成する元のシートとなっていますので、そこでの設定となります。 前回の内容については説明が足りないのだと思い、回答してもらったのは有り難かったのですが、実は試していません。part2でもう少し詳しく説明しようと思い、前回は締め切りにした次第です。ただ今回も説明不足でしたが・・・ とりあえず回答を頂いたのを試したいと思っています。 有難うございました。
- zenjee
- ベストアンサー率47% (50/106)
1、16列というのはP列のことですか。こういう設問をされるのなら何もP列と限定せず、B列でもC列でもいいわけで、16列と限定されるのには何か意味があるのですか。 >16列で設定した内容が当てはまるとはIF文?を使用してある文字列が入ってた場合 2、16列(P列)に入ったデータというのは、手入力で入れられたデータですか。そうでなくてP列には例えば、「=IF(B1=○○,××,"みかん")」というような式が入力されていて、その式の結果として「みかん」が入ったり入らなかったりする、そのどちらでしょうか。 >シートB(表2)の16列に"みかん"が入ってきたら、シートA(表1)のあるセルに"愛媛”と出力が出来ればいい 3、最初のご質問では「シートB(表2)の16列に"みかん"が入って」くるまでは「表1」はまだ存在してなくて、表2のP列のどこかに「みかん」が入った途端に表2が完成し、同時に表1の作成を開始、「愛媛」を表示させる特定のセル(仮に[A1」とします)に入れる数式もその段階で設定する、というような意味の書き方をされていますが、そういうことですか。 もしそうだとすると、表2のP列に「みかん」が表示されるまで表1を作成できない何か理由があるのでしょうか。 それとも表2、表1とも既に完成していて、表2のP列のどこかに手入力又、計算結果のいずれかにかかわらず、「みかん」という文字が表示された場合に、表1のA1に「愛媛」と表示させたい。その場合の計算式は?。という質問でしょうか。もし後者だとすると、表1のA1に =IF(ISERROR(MATCH("みかん",Sheet2!$P:$P,0)),"","愛媛") と入力すれば事足りると思いますが、もし前者(表2のP列に「みかん」が入った後、表1を作る)であればワークシート関数ではできません。マクロによらなければならないでしょう。 いずれにしてもご質問の意味がハッキリしませんので、再補足をお願いします。
補足
補足です。 1.列に関しては特に限定はありません。 2.マクロを使用してcsvファイルを読み込んだ結果です。 ですので、あらかじめその列に"みかん”が入ってきたときの設定を行いたいのです。 3.そのエクセルには2つのシートがありそれぞれマクロがくんであります。そのマクロを同時には実行出来ないので、最初に表2を作成後、表1の作成になってしまいます。 何かわからなければ補足します。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 No.1719355 の『エクセルで・・・』が解決つかないまま、締め切ったようですが、もう少し、具体性があると、解決の目処がつくのではないでしょうか?『エクセルで・・・』と合わせて読んでも、見えてきません。 >シートB(表2)の16列で設定した内容が当てはまれば、 >シートA(表1)のある指定したセルに指定した文字が入ります。 一体、「16列で設定した内容が当てはまる」ということはどういうことで、「ある指定したセルに指定した文字が入る」ということは、どういうことなのでしょうか? 同じ内容を繰り返されても、質問が分らないのです。簡易サンプルを掲示してくださるのが、一番早いかと思います。 回答者が知りたいのは、「流れ」ではなくて、起点の状態と、その期待する結果なのですね。
補足
分からない文章で申し訳ありません。 16列で設定した内容が当てはまるとはIF文?を使用してある文字列が入ってた場合です。 その文字列が入ってきた場合のみ、シートA(表1)に出力したいのです。 例えば、シートB(表2)の16列に"みかん"が入ってきたら、シートA(表1)のあるセルに"愛媛”と出力が出来ればいいのです。 これで分かるでしょうか?
お礼
有難うございます。 早速試してみます。