こんにちは、エクセル2010を使っています。
セルを結合して以下の様な文字列の数式を作りました。
A1セル
=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")
この文字列の数式を計算させようと、セルの書式設定で【標準】を選び、そのセルをアクティブにしてENTERで決定しましたが、いぜん文字列のままです。
試しに他セルに値で貼り付けて、それをENTERしてみると、そちらはちゃんと計算してくれるのですが、A1セルの式はマクロ実行の途中に何度も変わるので値貼り付け、ENTERは現実的には不可能です。
なんとか良い方法は無いものでしょうか?
詳しい方、よろしくお願いいたします。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
たびたびすみません。
No.7の続きです。
A1のセルが正しく「NG」と表示されている時に、No.7のマクロを実行したら、
セル内が「NG」になって数式が消えてしまいました。
自動化した場合、A1のセルの表示が数式のままか、数式の結果かを確認できないので、
No.7のマクロは危険ですね。
すみませんでした。
No.7
- 回答日時:
No.6はコピーを間違えました。
無視してください。No.5の続きです。
「数値を文字列として書式設定した場合の予期しない動作」
https://support.microsoft.com/ja-jp/kb/141765
の方法3を試して失敗したのですが、
次のマクロを実行したら、
A1のセルの表示が「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」から「NG」になりました。
念のためにセル内に入力されている文字を確認したら「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」でした。
Excel 2007です。
Sub Enter_Values()
Range("A1").Select
Selection.NumberFormatLocal = "G/標準"
Range("A1") = Range("A1").Value
End Sub
No.6
- 回答日時:
No.5の続きです。
「Vlookupそこにあるのに#N/Aが出る - Excel(エクセル) | 教えて!goo」の回答No.5かも。
https://oshiete.goo.ne.jp/qa/9004936.html
の方法3を試して失敗したのですが、
次のマクロを実行したら、
A1のセルの表示が「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」から「NG」になりました。
念のためにセル内に入力されている文字を確認したら「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」でした。
Excel 2007です。
Sub Enter_Values()
Range("A1").Select
Selection.NumberFormatLocal = "G/標準"
Range("A1") = Range("A1").Value
End Sub
No.5
- 回答日時:
改善策ではないですが、何が起こっているのか気になって試してみました。
Excel2007です。
1. 質問の数式「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」を適当なセルに入力すると、そのセルは「NG」と表示。
2. 「NG」と表示されたセルの書式を「文字列」に変更したけれど、表示は「NG」のまま。
3. 仕方ないので入力を「'=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")'」に変更したら、表示が「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」に。
4. 「'=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」に変更しても、表示は「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」のまま。
5. 「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」に変更しても、表示は「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」のまま。
6. セルの書式を「標準」に変更したけれど、表示は「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」のまま。
7. そのセルを他のセルにコピーしたら、コピー先でも「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」のまま。
8. 元のセルとコピー先のセルで、数式バーにカーソルを移してからEnterを叩いたら、どちらも表示が「NG」に戻る。
9. 「NG」と表示されてるセルの書式を「文字列」に変更しても、表示は「NG」のまま。2.と同じ。
10. 書式を「文字列」なのに「NG」と表示されてるセルで、数式バーにカーソルを移してからEnterを叩いたら、表示が「=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")」に。
この一連の作業で、以前に同じような現象について「教えて!goo」の質問を見て調べたことがあったことを思い出し、
「Vlookupそこにあるのに#N/Aが出る - Excel(エクセル) | 教えて!goo」の回答No.5かも。
https://oshiete.goo.ne.jp/qa/9004936.html
その時に参照したサイトが
「数値を文字列として書式設定した場合の予期しない動作」
https://support.microsoft.com/ja-jp/kb/141765
> Microsoft Excel で文字列の書式を設定した数値の書式を文字列以外に変更すると、その数値が期待どおりに変更されないことがあります。
> この動作は仕様です。書式を文字列数値形式に設定したセルは文字列として変更され、そこに入力した内容もすべて文字列として表示されます。
これと似た現象が起こっているような気がしました。
もしかしたら、ヒントが見つかるかもしれません。
(方法3は試してません。方法4は「乗算」後にセルでEnterを叩いたら「1」になって失敗しました)
No.4
- 回答日時:
こんばんは。
>セルの書式設定で【標準】を選び、そのセルをアクティブにしてENTERで決定しましたが、いぜん文字列のままです。
「セルを結合して以下の様な文字列の数式を作りました。」がどういう操作をしたかは想像の範囲ですが、再現は出来ました。(もちろん、書式文字列-プレフィックス文字「'」も使っていません)
どのようにしても、文字列から外れる(数式になる)様子はありません。作りなおす方が簡単なような気がします。
方法:
・一旦、数式をテキストベースでメモ帳などにコピーペーストしておきます。
=IF(AND(NQ40>=3,NQ36<=8),"OK","NG")
そして、そこを削除します。
・次に、NQ40 と NQ36 の参照セルの書式は、書式-文字列になっていないか確認。
なっていたら、標準か数値にします。そして、そこが数値(文字列以外)になったことを確認します。
文字列になったままなら、左詰めになります。書式を直しただけでは、変わっていないことがあります。
・次に、最初の数式が入っていたところの書式を、標準か、数値か、少なくとも文字列以外になっていることを確認します。
そして、削除した数式を戻します。(数式バーから入れたほうが確実です)
原因:
書式文字列のセルを参照して、数式を作ったからです。文字列の数式というのは、おそらくそういう意味だったに違いないと思いました。仮に、参照先が文字列でも、数式バーから作れば、そのような問題は起こらなかっはずですが、文字列書式は、参照セルに伝染してしまいますので、注意が必要です。
なお、マクロ関数やVBA関数には、EVALUATE 関数というものがありますが、「文字列の数式」のままから値を取るなら、それを使うしかありません。
No.3
- 回答日時:
数式の表示はオフですよね?
http://www.relief.jp/itnote/archives/003610.php
区切り位置ウィザードも効果ありませんか。
https://faq.qqweb.jp/faq/viewer.asp?ID=AC9A687811
あとは「=」を置換対象として、同じ「=」で置換するという方法が有効かもしれません。
No.1
- 回答日時:
>セルの書式設定で【標準】を選び、そのセルをアクティブにしてENTERで決定
それだけでは足らないと思います。
http://www4.synapse.ne.jp/yone/excel2010/excel20 …
セルをアクティブにしてからF2を押すなどしてセルを一旦編集モードにしてからEnterキーを押してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルのセルに「=A13」...
-
エクセルで特定のセルを表示の...
-
エクセル 関数 セルの値が0...
-
ワードの表の中に文字を入れる...
-
エクセルのセルが縦方向にのびる
-
Excelで、セル内改行もそっくり...
-
Excelで来月以降の日付のセルを...
-
セルA1とB1の数値が一致しな...
-
エクセルでセルに何も入力して...
-
エクセルで文字の上に重ねがき...
-
Excel2007でセルに値があるはず...
-
勤務時間を10進法で合計を出したい
-
Excelの条件付き書式で、計算式...
-
Excelで土、日、祝日の色分けが...
-
エクセルでセルを結合した場合...
-
concatenate関数で片方のセルの...
-
【Excel】セルの中の文字の下の...
-
横書きで縦の波線の書き方
-
Excelで前ゼロを取る方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルのセルに「=A13」...
-
Excelで、セル内改行もそっくり...
-
ワードの表の中に文字を入れる...
-
エクセルのセルが縦方向にのびる
-
エクセルで特定のセルを表示の...
-
エクセル 関数 セルの値が0...
-
Excelで来月以降の日付のセルを...
-
エクセルで文字の上に重ねがき...
-
Excelで土、日、祝日の色分けが...
-
横書きで縦の波線の書き方
-
Excelの空のセル
-
Excel2007でセルに値があるはず...
-
【Excel】セルの中の文字の下の...
-
Excelの条件付き書式で、計算式...
-
エクセルでセルに何も入力して...
-
セルA1とB1の数値が一致しな...
-
エクセルで住所のフリガナ変換
-
エクセルで、文章の右端をそろ...
-
EXCELでCELL一杯の文字を書きた...
おすすめ情報
それをやっても同じになってしまうんですよねー・・・
文字列のままなんです。
今確認してみましたが、入っていないようです><
数式の表示 は もともと他のセルは文字列で表示されてないので一応試してみましたがダメみたいです。
区切り位置も試してみましたが、変化なし、最後に=の置換も何も起こらずです><