- ベストアンサー
円マークを自動で表示する方法とは?
- 請求書において、シート1とシート2で表示されている押印や合計金額、明細、計、消費税、合計などのセルのデータを取得し、自動で表示する方法を紹介します。
- シート1の合計金額は1桁1セルになっており、シート2の合計から1桁ずつ取得して記入しているのですが、7桁目が入ったり入らなかったりするため、常にチェックする必要があります。
- そこで、条件分岐(IF)関数を用いて、シート2の合計の7桁目に数字が入っていればその数字を取得し、入っていない場合は円マーク(¥)を表示する方法を説明します。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>とするにはどのようにすればよいでしょうか。 関数式の論理を考え直してください。 シート1のA1に下記の式を入力してH1セルまでコピーしてください。 =IF(AND((MID(RIGHT(" "&シート2!$E32,8),COLUMN(),1))=" ",(MID(RIGHT(" "&シート2!$E32,8),COLUMN()+1,1))=" ")," ",IF((MID(RIGHT(" "&シート2!$E32,8),COLUMN(),1))<>" ",(MID(RIGHT(" "&シート2!$E32,8),COLUMN(),1)),"\")) 添付画像はA1~H1が7桁の値のときでA2~H2が6桁のとき、A3~H3が5桁と順次桁数が減少したときの状態です。 お金を貰う仕事の処理をタダで手助けを頼むのは好ましくありません。 次回からは有償で依頼するか、ご自身で解説書等を手元に置いて学習してください。
その他の回答 (7)
- keithin
- ベストアンサー率66% (5278/7941)
簡単に A1: =MID(RIGHT(TEXT(Sheet2!$E32,REPT(" ",7)&"\0"),8),COLUMN(A1),1) 右にH1までコピー と、「常に8文字」作っておいて1文字ずつ切り出すぐらいで十分と思います。 #REPTの部分は見にくいのでそう書いただけで、もっと簡単に"スペース7個\0"でも勿論構いません
お礼
お礼が遅くなり申し分けありません。 コピーだけでいける簡単な方法をありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
No.4です。 投稿後にもう一度質問文を読み返してみました。 A1セルには「円マーク」か「空白」のどちらかで、B列~H列に数値を表示しなければならない訳ですね! 前回の数式はB1セルに入力し、H1セルまでオートフィルでコピーしてください。 そして、A1セルの数式を =IF(シート2!E32>=1000000,"\","") としてみてください。 何度も失礼しました。m(_ _)m
お礼
お礼が遅くなり申し分けありません。 桁数間違いしないように1000000とする必要がありますが、簡単にできました。 ありがとうございます。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>=IF((MID(RIGHT(" "&シート2!E32,7),1,1))>0,(MID(RIGHT(" "&シート2!E32,7),1,1)),"\") としても7桁目にはなにかあると判断されているようでうまくいきません。 上記の数式をそのまま活かすなら、以下のように7桁目の値が「半角スペース以外」ならという数式にします。 =IF(MID(RIGHT(" "&シート2!E32,7),1,1)<>" ",MID(RIGHT(" "&シート2!E32,7),1,1),"\")
お礼
お礼が遅くなり申し分けありません。 勉強になりました。 ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 A1セルに =IF(シート2!$E32<10^(6-COLUMN(A1)),"",IF(シート2!$E32<10^(7-COLUMN(A1)),"\",INT(MOD(シート2!$E32,10^(8-COLUMN(A1)))/(10^(7-COLUMN(A1)))))) という数式を入れ、G1セルまでオートフィルでコピー! こんな感じではどうでしょうか?m(_ _)m
お礼
お礼が遅くなり申し分けありません。 ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
考え方としては、数値の桁数で考えるよりは、シート2のE32セルに入っている数値データを、「\」マーク付きの金額を表している文字列データに変換したものを、右端から順番に一文字ずつ表示する様にした方が簡単かもしれません。 具体的には、H1セルに次の関数を入力してから、H1セルをコピーして、A1~G1の範囲に貼り付けると良いと思います。 =IF(COLUMNS($H:H)>LEN(TEXT(Sheet2!$E32,"¥0;¥-0")),"",MID(TEXT(Sheet2!$E32,"¥0;¥-0"),LEN(TEXT(Sheet2!$E32,"¥0;¥-0"))-COLUMNS($H:H)+1,1))
お礼
お礼が遅くなり申し分けありません。 こういう方法もあったんですね。 目から鱗です。 ありがとうございました。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
こんなんでどうですかね。 1桁目の数式 =IF(ISERROR(VALUE(MID($K$1,LEN($E$32),1))),"\",VALUE(MID($K$1,LEN($E$32),1))) 2桁目以降の数式 =IF(H$1="\","",IF(ISERROR(VALUE(MID($K$1,LEN($E$32)-1,1))),"\",VALUE(MID($K$1,LEN($E$32)-1,1)))) 2桁目以降の数式は、 「H$1」部分は、3桁目、4桁目は「G$1」、「F$1」にします。(オートフィル機能で勝手になる) 「-1」部分は、3桁目、4桁目は「-2」、「-3」にします。(セルごとに手動で変更する)
お礼
お礼が遅くなり申し分けありません。 $K$1の部分がどこからのものか分からず少し考えましたが無事できました。 ありがとうございました。
- maiko0318
- ベストアンサー率21% (1483/6969)
A1=(1000000以上は'\' 以外は'') B1=(1000000未満は'\') でどうでしょう
お礼
お礼が遅くなり申し分けありません。 =(E32<1000000,"¥",mid・・・) というような条件設置でやりたいことができました。 桁合わせが大変ですのでもう少し勉強してみます。 ありがとうございました。
お礼
お礼が遅くなり申し訳ありません。 ご親切に各桁の時の画像もつけて頂きありがとうございます。 >お金を貰う仕事の処理をタダで手助けを頼むのは好ましくありません。 次回からは有償で依頼するか、ご自身で解説書等を手元に置いて学習してください。 今後は自力で解決できるよう努力させて頂きます。 この度はご指摘、ご回答ありがとうございました。