- ベストアンサー
Excelでセル入力の判定をしたい
Excel2000を使用しています。 [A1]セルに =SUM(H11*H12) という関数が入っています。 当然、[A1]セルは自動計算されますよね。 その結果を、[A2]セルに、"自動計算"と表示させたいのです。 そして、関数の入っている[A1]セルに直接数字を打ち込むと、[A2]セルには"手打ち"と表示させたいのです。 TYPE関数を使ってみたのですが、うまくいきません。 みなさんのお知恵を拝借させてください。 お願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
常に数式と手打ちの値が相違するのであれば、A2セルに=IF(A1=(H11*H12),"自動計算","手打ち")では如何でしょうか。 後は、VBAプログラミングしかありません。
その他の回答 (3)
- rin01
- ベストアンサー率43% (33/76)
すみませ~ん。。。 式を訂正します。 こちらです。↓ A2: =IF(A1="","",IF(TYPE(--計算式)=1,"手打ち","自動計算")) そそっかしいので、ゴメンナサイ!! 。。。Ms.Rin~♪♪
お礼
うわぁ、ありがとうございます。 No.2さんの回答よりすぐに作成にかかり、成功してしまいましたので、今、試みることができません。 (ホントにギリギリの作業だったんです(汗)) でもこの方法はデータサイズを軽量化・処理の簡素化が計れそうですね。 来月も同じ処理をするので、もう1ファイルを作って、ご回答の方法でくみ上げてみたいと思います。 お力添え、ありがとうございました。
- rin01
- ベストアンサー率43% (33/76)
こんにちは~♪ 失礼しま~す。。。 No2のmu2011さんの回答で解決されると 思うのですが~。。。 ★いつまで、サポートされるかわからない機能ですが 4.0マクロ関数を使う方法です。 順序その1 挿入→名前定義から 名前 → 計算式 と入力します。 参照範囲→ =GET.CELL(6,Sheet1!$A$1) その2 A2: =IF(A1="","",IF(TYPE(--式)=1,"手打ち","自動計算")) でいかがでしょうか。。。 。。。Ms.Rinでした~♪♪
- takase_000
- ベストアンサー率27% (52/189)
自動計算 と表示させたいセルを選択し、 そこで書式→条件付書式 を設定します。 条件は、A1='ここにA1に書かれている式'をそのまま貼り付けます。 書式ボタンをクリックし、セルの色を変更します。 これで、A1に手入力された場合は色は変化せず、自動計算の場合は設定したセルの色に変わるというものです。 簡単に設定するにはこの程度しかできません。 もっとVBAで組むとなると実現できますが・・。
お礼
残念ながら条件式書式設定では目的を達せなかったのですが、今後困った時の参考となりました。 また困った際にはアドバイスいただければ幸いです。 ありがとうございました。
補足
ありがとうございます。 実際には関数として仕上げたいと思っています。 現状考えていた関数式は、 [A2]セル↓ =IF(TYPE(A1)=1,"手打ち","自動計算") です。 ところが、このままでは、H11,H12に数字が入ると、A1は結果的には"手打ち"となりますよね。 例えば、B1セルの中で、関数が入っている状態の[A1]セルを数値として認識させず、初めて[A1]セルに手打ちした時点で数値とみなすことはできないでしょうか? わかりずらい説明ですみません。
お礼
はい!! できました。 アレンジは加えましたが、ベースはこのタイプで成功です (^^)v あまりにも身近な式だったので、この方法に関心しきり!! こんな感じで解消しました。 自動計算か手打ちかを判定のため [AC2000] =IF(VLOOKUP(I2000,Database!$D:$H,5,TRUE)=1,1,2) を追加 基準となるセル(質問では[A1]) [M2000] =IF(ISBLANK(I2000),"",IF(R2000>1,ROUNDUP(R2000/1.05,0),IF(VLOOKUP(I2000,Database!$D:$H,1)=I2000,VLOOKUP(I2000,Database!$D:$G,2)*AB2000,"手打か税込入力"))) 基準となるセルより手打ちか自動計算かを判定して結果を出す(質問では[A2]) [O2000] =IF(ISBLANK(I2000),"",IF(AC2000=2,M2000*0.8,IF(R2000>1,ROUNDUP(R2000/1.05,0)*0.8,IF(VLOOKUP(I2000,Database!$D:$H,1)=I2000,VLOOKUP(I2000,Database!$D:$G,3)*AB2000,"手打か税込入力")))) I列: 内容 M列: 売上金額 O列: 支払金額 AC列: 判定用 Database分、H列を追加 D列: 内容 E列: 売上金額 F列: 支払金額 G列: メモ H列: 判定のためのフラグ(1は自動計算 2は手打ち) なんのこっちゃ? の式ですが、こんな感じです。 でもね、2000行あって、シートが10枚… ほかにも関数があって、データサイズがでかいことでかいこと(笑) ありがとうございました。