- 締切済み
エクセルで、その日の試合のみの打率を表示させるには?
その日の試合のみの打率を表示させたいのですが、 セルA1に打率 セルB1に打数 セルC1に安打 を入力して、 セルA1に、=C1/B1と入れますよね。 打率が、1.00の時は、1.00と表示し その他の時には、.352のように点の前に0を付けないようにしたいのですが、どうすればいいんでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- haccyan
- ベストアンサー率43% (27/62)
こんばんは。 まず、A1に、=IF(C1=B1,"1.00",C1/B1) とします。 次に、A1の[セルの書式設定]を、[表示形式]-[ユーザー定義]で .000 とします。 A1の関数を見ていただくとわかるように、 C1=B1の場合のみ、"1.00"が「文字列」として入ります。 このため、[書式設定]-[配置]-[横位置]で、”右詰め”を選択します。 以上で、目的通りの表示になると思われます。 打率の計算なので1.00より大きい値はありえないはずですが、 もし入力ミスで打席数より安打数が大きい値の場合、ex) 7/5=1.400 のような表示スタイルになります。 また、文字列の"1.00"を(A1を)そのまま他の関数の引数としても、 そのまま( *1 をつけて文字列を数値化することなしで)計算できるようです。
- pc_knight
- ベストアンサー率66% (52/78)
ANo.2です。ご質問の内容を熟読せずに的はずれな回答してしまいました。(平謝り) 打率10割(=1.00)の時「1.000」と表示きれてしまいましたね。 マクロを使うとできるのですが・・・・。 例えば、次のようなのでいかがでしょう。 Private Sub Worksheet_Change(ByVal Target As Range) rw = ActiveCell.Row For r = rw - 1 To rw If Cells(r, 2) = "" Or Cells(r, 2) = 0 Or r < 1 Then GoTo Nxtr If Cells(r, 3) / Cells(r, 2) = 1 Then Cells(r, 1).NumberFormatLocal = ".00" Else Cells(r, 1).NumberFormatLocal = ".000" Nxtr: Next r End Sub
- pc_knight
- ベストアンサー率66% (52/78)
A列を選択 → 「書式」メニューの「セル(E)」 → 表示形式タグの「分類形式(C)」にて「ユーザー形式」を選択 → 「種類(T)」の所にキーボードから ”.000”と入れて 「OK」をクリックするとできそうです。 「.」の右の「0」の数で小数点以下の桁数が決められます。 やっていたらたまたま出来ただけなので自信はありませんが・・・。
- kamejiro
- ベストアンサー率28% (136/479)
>1.00の時は、1.00と表示し >その他の時には、.352のように点の前に0を付けない 1.00ではなく、1.000では駄目ですか?。 この場合なら、A1をアクティブにして、 書式→セル→表示形式→ユーザー定義→種類を .000_ としてはどうでしょうか。 小数点以下3桁目を0なら表示しない形式なら .00#_ をしたら良いです。