「夫を成功」へ導く妻の秘訣 座談会

Excel関数について。関数の天才はいませんか?

セルA1 とB1の中にそれぞれ数字が入っています。
A1-B1の値がLとして

L≦1000ならⅠ
1000<L≦2000ならⅡ
2000<L≦3000ならⅢ
3000<L≦4000ならⅣ
4000<L≦5000ならⅤ
5000<L≦6000ならⅥ
6000<L≦7000ならⅦ
7000<L≦8000ならⅧ

Lの値によって表し方を上記のようにⅠ〜Ⅷに変えて
尚且つ、「Ⅰ×1×0」という表示をする。(×1×0という表記をくっつける)×1×0というのはその計算をするわけではなく表示記号のようなもの。

どなたかExcel関数得意な方いましたら教えて下さい!

A 回答 (6件)

No.5です。


ご質問者らから数式の説明のご要望があったので、添付画像で解説しておきます。
ご参考まで。
「Excel関数について。関数の天才はいま」の回答画像6
    • good
    • 0

常識的にはNo.4さんの方法を用いるのが一般的だと思いますが、この方法だと、Lが1以下の場合「#N/A」と表示されます。

またLが8000超の場合(例えば9500)でも、すべて「Ⅷ×1×10」と表示されることになります。
ご質問者の実務の場面でLの範囲が0以下や8000超になる場合がなければ何の問題もないわけですが、万一Lが0以下や8000超の値になる可能性があるなら、その場合でも対応できるように、数式を修正するとすれば以下のようなものだと思います。
=IF(A1-B1<=0,"I×1×0",ROMAN(INT((A1-B1-1)/1000)+1)&"×1×0")
    • good
    • 0
この回答へのお礼

完璧です。天才です!
ちなみに
え?なんでこうなるの?って言われたらなんて答えれば良いのでしょう?

お礼日時:2020/09/14 13:40

添附圖參照(Excel 2019)


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
「Excel関数について。関数の天才はいま」の回答画像4
    • good
    • 0

Lに該当するものが、


0≦L≦8000
の範囲であるなら、

質問に書かれている数値の範囲であれば、これだけでいいと思うよ。

=CHAR(INT((A1-B1-1)/1000)+11573)&"×1×0"
    • good
    • 0

こんばんは!



一例です。
↓の画像のように、対応表を作成しておきます。(画像ではF・G列)
F2セルにはこれ以上の数値はない!という位の値を入れておきます。

そして、D2セルに
=IF(C2="","",INDEX(G:G,MATCH(C2,F:F,-1)))

という数式を入れ、フィルハンドルで下へコピーしています。m(_ _)m
「Excel関数について。関数の天才はいま」の回答画像2
    • good
    • 0

結果となる「Ⅰ〜Ⅷ」は単なる数値として、


表示設定で「ローマ数字」を指定すればよいでしょう。
或いは、アラビア数値表示による結果(下記)をローマ数字の文字化に変換、
でも良いと思います。

であれば、その判定関数は次のようになります。
=(L≦1000)*1
+AND(1000<L,L≦2000)*2
+AND(2000<L,L≦3000)*3

+AND(7000<L,L≦8000)*8

ここで、L=(A1+B1) です。
どうでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング