- ベストアンサー
Excelのバグ?
- エクセルで別のシートを参照し、参照先のセルが空白の時は"Blank"と表示するようにしていましたが、G列からは参照先が空白の時に0と表示されます。A列で用いている数式をそのまま貼り付けても0になります。
- A列とB列間に1列挿入すると、F列のBlankがすべて0に変わってしまいます。もう少し見てみるとG列以降はif関数のTrue判定時の操作を読み込んでいないようです。
- Excelで別のシートを参照し、参照先のセルが空白の場合に0ではなく"Blank"と表示したいが、数式をそのまま貼り付けても0になってしまう問題が発生しています。また、列の挿入によってif関数が正常に機能しなくなる現象も確認されています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1の補足にあった式では現象が再現しました(Excel2010です)。 残念ながらISBLANKの使用方法を間違えています。 ISBLANKでテストの対象とするのは単セルです。セル範囲ではありません。 セル範囲を指定した場合の返り値は保証されません。 セル範囲の空白セルをチェックするにはCOUNTBLANK関数使用しましょう。
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
>Excelは2016です. 当方ではExcel 2016が無いので同一条件での検証ができません。 しかし、Excel 2013からの関数は互換性が保たれていると思います。 >Officeの再インストールは私物ではないのと各所で許可を取る必要があり,手段としては最後の方と考えています. Officeの修復は考えていないのですか? 尚、回答No.1への補足で次の数式を提示していますがIF関数の条件式にISBLANK関数の使い方を誤っているように思います。 「=IF(ISBLANK(sheet2!C3:F3),"Blank",SUM(sheet2!H3:K3))」 ISBLANK関数の引数で複数の連続セルを指定したときは先頭(左上)のセルのみの結果が戻ります。 また、C3:F3のすべてのセルがBlankのときなのか、C3:F3にBlank含まれているときなのかが提示の数式から判断できませんので代案を提示できません。 更に、チェック対象のC3:F3と合計する対象のH3:K3の関係が不明です。 一般的には計算対象をチェックして計算の要否を判断します。
お礼
コメントありがとうございます. countblank関数を利用することで解決できました. 今回の目的は,例えばsheetAのセルC1に何らかの文字が入力されている場合,sheetAのセルH1に0が代入される sheetA D1 → H1に1 sheetA E1 → H1に2 ・・・ と指定しており, 加えて,G1に何らかの文字が入力されているとI1に1が代入される状況を作り,別シートにH1:I1の合計がシートごとに集計されるものを作ろうとしていました. 制限として (1)C1からF1までに何も入っていない場合 (2)C1からF1までの2つ以上のセルに入力がある場合 エラーを返すようにする必要がありました. もう少し賢い方法もあると思いますが,countblank関数で何とか乗り切れました. 何度もありがとうございました.
- bunjii
- ベストアンサー率43% (3589/8249)
Excelのバージョンは? Officeの修復またはアンインストール後にWindowsを再起動してOfficeを再インストールしても同じですか? 当方ではExcel 2013で検証しましたが[別シート!セル]がBlankのときは"Blank"になります。
お礼
ありがとうございました. isblank関数の使い方を間違っていたようです. countblank関数を利用することで解決できました. お騒がせしました. ありがとうございました.
補足
ご回答ありがとうございます. 失礼しました. Excelは2016です. Officeの再インストールは私物ではないのと各所で許可を取る必要があり,手段としては最後の方と考えています.
- chachaboxx
- ベストアンサー率23% (412/1777)
当方では状況が再現出来ませんでした。(異常は確認できず) 再現内容は =IF(ISBLANK(Sheet2!A1),"Blank",SUM(Sheet3!A1)) を、Sheet1のA1セルに入力し。フィルペーストでI1セルまでコピー。 Sheet2のA1セルからI1セルまで1から9を順に入力 Sheet3のA1セルからI1セルまで11から19を順に入力 Sheet1のA・B列間に列を挿入すると、 新F1セルには旧E1セルの内容が、新G1セルには旧F1セルの内容があります ...以右同様。 Sheet2のA・B列間に列を挿入すると、 新F1セルには旧G1セルの内容が、新G1セルには旧H1セルの内容があります ...以右同様。 この状態で、Sheet2の新H1セルの内容「7」を削除すると、Sheet1の新H1セルの表示は「Blank」になります。 問題はありません。 この状況は再現できますか?
お礼
ありがとうございました. isblank関数の使い方を間違っていたようです. countblank関数を利用することで解決できました. お騒がせしました. ありがとうございました.
補足
ありがとうございます. バージョンをお伝えせず失礼しました. エクセルバージョンは2016です. 試していただいた内容を同じエクセルファイル上で実行してみたところ, Blankが表示されました. エクセルの再起動など試してみましたが,私の症状は治りませんでした. なぜうまくいかないのでしょうか... 私のところで起こる現象の再現方法がわかりました. 現在下記の通りに式を記述しています. =IF(ISBLANK(sheet2!C3:F3),"Blank",SUM(sheet2!H3:K3)) この数式をフィルペーストではなく,CからHまで貼り付けを行うと(CからHまで完全に同じ式),CからF列まではBlankと表示されるのですが,G列から0表示に変わるようです. この現象は再現できませんでしょうか?
お礼
ありがとうございます. countblank関数を利用することで解決できました. 適切なアドバイスありがとうございます.