こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの関数式について教えて~!

こんにちは!皆さん
windowsXPの環境でExcel2002を使用しているのですが、よく文具屋さんなどで売られている見積書の
書式通りに作成したくて作ってはみたのですが、出来ない部分があります。
見積書は基本的に「適用」「単位」「数量」「単価」
「合計」といった具合に横に並んでますが、「単価」
と「合計」の部分は一つのセルの中に細い線が十桁分ありまして、セルを縮めて十桁分作成して一つのセルの中に線を描く事は可能なのですが、数字を入力する時にわざわざ一桁ずつセルを移動しながら入力しないとなりませんし、「合計」のところにどのように関数式を入れれば十桁の中に収まるのか分かりません。
役所に提出する見積書ですので、桁が分かりやすい
ようにセルの中に十桁分の細い線が入っていないと
ダメらしいのです。

説明不足で分かりにくいとは思いますが、Excelに詳しい方がいましたらお力を貸して下さい。
よろしくお願いします!

投稿日時 - 2002-12-11 23:42:13

QNo.425833

すぐに回答ほしいです

質問者が選んだベストアンサー

まずはANo.#7 tinu2000さんの言うように、
「ほんとにダメなのか」確認ですね(^^;
ただ、オカタイ役所(というか、お役人)もいますからね~
そこら辺は交渉次第です。

で、ダメと言われたらANo.#1のkmb01さんの言うとおり、
入力と出力欄を別に考えた方が良いと思います。
「単価」に「数量」をかけて「合計」を出し、さらにそれを集計するのでしょうから。
図形描画でセル内に線を引いていくのは文字との位置合わせが大変そうなんで私はパスです・・・(^^;

さて、出力欄ですがA2セルに入力した数値をB2~K2に桁ごとに別けて出力する方法です。
以下、:以後が各セルに入力する式です。
まず、前準備としてB1~K1セルに9,8,7,・・・と0まで入力して下さい。B1が9、K1が0です。
それと、ゼロ値表示がオンになっていることを確認。

B2:=IF($A2>=10^B$1,ROUNDDOWN($A2,-B$1)/10^B$1,"")
C2:=IF($A2>=10^C$1,(ROUNDDOWN($A2,-C$1)-ROUNDDOWN($A2,-B$1))/10^C$1,"")
あとは、C2セルをD2~K2までコピー。
複数ある場合は、1行目を下方向にもコピーです。

それと、書式によっては細線の「上に」数字が書かれていないとダメ、という場合があります。
その場合は上記各セルを、2セルを結合したものにし、
図形描画で結合したセルの真ん中に線を引けばOKです。
(ALTキーを押しながら引くと、セルのカドに正確に起終点を合わせられます)

投稿日時 - 2002-12-12 11:02:41

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.8

エクセルはそのままの設定で(セルを10桁分確保して罫線で枠を作ってしまう。)横書きテキストボックスを配置する。背景を透明にしてフォント、サイズの調整で枠内に入るようにする。(ここが少し面倒ですが、トライアンドエラーですかね。)私はこの方法でやってます。

投稿日時 - 2002-12-12 10:57:28

ANo.7

そうかなぁ?
って、質問を読んで最初に感じました。
お役所に提出する書類だから「手書き書類」と同じレイアウトにしないと通らないのかなぁ?
最近のお役所はそんなに固くは無いと思うけど!

> セルの中に十桁分の細い線が入っていないとダメらしいのです。
確認されましたか?

以前、神戸市と大阪市に見積書と請求書を提出しましたが、
金額欄はちょっと大きめのフォントでカンマ編集で通りましたよ。
私だったら当然といった顔してカンマ編集の書類を出しますが・・・

投稿日時 - 2002-12-12 07:46:37

ANo.6

私が考えた方法.
例えば4桁の数字桁を考える。
(1)C,D,E,F列の列記号をShiftキーを押しつつクリック。
(2)C列を数字1桁表示に適当な幅にする。するとD、E、F列も
一遍に揃う。
(3)H1に’1234、’3456、’△123などのように
  A.先頭に’をつける(文字列化)。B。所定桁に満たない時は先頭桁  にスペースを入れて桁を揃える。
(4)関数式
C1に=Mid(H1,1,1)
D1に=Mid(H1,2,1)
E1に=Mid(H1,3,1)
F1に=Mid(H1,4,1)
を入れ、C2:F10とかに複写する。
(5)DEF左罫線は細いもの、色を灰色やその他で白黒印刷時に薄く出るようにする。

投稿日時 - 2002-12-12 00:35:27

ANo.5

少し面倒かもしれませんが、1セル内にオートシェイプで細い縦線を入れてはどうでしょうか?この場合、文字の位置を揃えるため、プロポーショナルフォント(MS P明朝など)は使えません。
ただ、文字間隔が狭いことが難点かな(私は文字間隔を指定する術を知りません)文字間隔の広いフォントがあればいいのですけど。または、JIS関数で2バイト文字表示にしておけば、文字間隔が多少は広がるかな。
関数でも何とか出来そうですが、上記で問題なければ、そちらの方が分かり易いかと思いまして・・・

投稿日時 - 2002-12-12 00:21:44

ANo.4

それはセルを10列使ってるんじゃなくて
セルの中に図形描画の直線で線を入れたほうが良いと思います。
セル10個に1桁ずつ入れることもできますが式が複雑になるだけであまりメリットは無いと思います。

投稿日時 - 2002-12-12 00:20:58

ANo.3

こんばんは。
ご質問の内容からして、数字1桁ごとに線が入っていればいいんですよね。
ということは、1つのセルの中に9本の線をひけばいいと思いますので、
ツール-ユーザ設定-ツールバーの中の「図形描画」をチェックして出たツールバー
にある、”直線”で点線をひけばいいのではないかと思います。
そうすれば、複雑なことをやらずに普通の関数(SUMなど)で対応できます。

投稿日時 - 2002-12-12 00:14:41

ANo.2

思いついたところでは、合計は他のセル(用紙外)に一旦出して、
その数字を1つずつ関数で分解するというのはどうでしょう?

一応試してみたのですが、関数がかなり複雑になってしまいました。
前提条件として(スペース上6桁にして、合計(計算式)をC列に出しています)
   C   D  E F G H I
1      6 5 4 3 2 1 ←桁数を表す数字
2  (合計)

という形になっているとして1の位が入るI2セルに。
1の位 =IF((LEN(TEXT($C2,0))<I1),"",LEFT(RIGHT(TEXT($C2,0),I1),1))
 ・$C2セルは合計の入ったセル(数字を入れたい行と同じ行に設定)
 ・I1は桁数を表す数字を入れたセル(10桁あるならそれぞれのセルと同じ列)
これを左側にコピーしていけば、それぞれの桁の数字が入ると思います。
手順としては
1.TEXT関数で計算式で算出した数字を文字列化
2.RIGHT関数で出した数字の右側から桁数分取り出す
3.LEFT関数でそのうちの一番左の数字を取り出す
4.それぞれの桁数に満たない数字の場合は空白を返す

もちろんこの数字は計算できないので、計算はC列を使用する事になりますが。

投稿日時 - 2002-12-12 00:13:40

ANo.1

入力用のシートと出力用のシートを別に作る、または
数値入力用のセルを作成し印刷時は非表示にする、などの方法で
とにかく数値を数値として入力できるようにするといいと思います。
これなら合計も求めやすいですし。

縮めた十桁のセルには特定の桁だけを表示する数式を。
(手元にEXCELがないので申し訳ありませんが数式は例示できません。
 if,Len,Midあたりの組み合わせでできるはずです。)

投稿日時 - 2002-12-12 00:04:35

あなたにオススメの質問