- ベストアンサー
エクセルでのセルに1桁だけの数字を入れての掛け算
123×9という掛け算をエクセルでさせたいと考えています。 但し、次の様にセルに入力して、結果を出したく考えています。 1行2列に1、1行3列に2、1行4列に3、2行4列に9と入力し、計算して、3行1列に1、3行2列に1、3行3列に0、3行4列に7と表示させる。 上記を実施する為の計算式を教えて頂きたく、よろしくお願いいたします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
1行2列に =IF(ISERROR(VALUE(MID(RC1,LEN(RC1)+COLUMN()-7,1))),"",VALUE(MID(RC1,LEN(RC1)+COLUMN()-7,1))) として、 1行7列までフィルし、つづいて、縦に3行までフィルする。 1行1列に123と入力すると、1行5列、6列、7列に、1,2,3とはいる。 2行2列に987と入力すると、2行5列、6列、7列に、9,8,7とはいる。 3行1列に、 =R1C*R2C と、入力しておけば、3行2列、3列、4列、5列、6列,7列に、1、 2、 1、 4、 0、 1 と答えが入る。 3行1列に、121401と表示されるのがいやなら、文字色を白にでもしておけばいい。
その他の回答 (8)
- imogasi
- ベストアンサー率27% (4737/17069)
例データ ーA列ーーーーB列ーーーC列ーーD列 ____ 1___ 2___ 3 ____________ 9 1___ 1___ 0___ 7 掛け算の答えは =SUMPRODUCT(B1:D1,{100,10,1})*D2 で出る。9も長桁なら同じようにすればよい。(第2行も{100,10,1}でSUMPRODUCTすればよい。) ーー 桁分離はA3に式 =MID(SUMPRODUCT($B$1:$D$1,{100,10,1})*$D$2,COLUMN(),1)*1 と入れてD3まで式を複写すればよい。
お礼
回答をありがとうございました。
- KonnaMonde
- ベストアンサー率57% (97/170)
7名の方が回答しているのに、返答がないのは、回答の内容を理解できないと解釈して、より簡単な関数を使用する方法を伝授します。 各セルに一発で答えを入れる方法は、どうしても数種類の関数の組み合わせを必要とします。 エクセルには、通常余剰セルが多くあります。 この余剰セルを使って少しづつ解答に近づけて行けば、1つのセルには簡単な関数ですむので、理解しやすく、また間違いも少なくなります。 使用するセルは、質問の通りおよび右の方に少しのセルを使います。 桁数が増える場合は、各セルを適宜右方向にずらしてください。 新しく増えたセルに入る数式(関数)は、例を見て推測してください。 文字列を使っての解決方法が一番簡単です。 “A1”表記で書きます。 まず、筆算のように“G1”セルに“123”、“G2”セルに“9”を入れ、“G3”セルに“=G1*G2”の式を入れます。 各セルの表示は、“123”,“9”,“1107”となります。 これらの値を1桁づつ分解して求めるセルに入れます。 答えの欄が4桁なので、G列の隣のH列に各数値を4桁の文字列として格納します。 方法は、 “H1”セルに“=RIGHT(" " & G1,4)”を書き込み、下方にドラグしてコピーします。 " "の中に入るスペースの数は3つです。 これで、 “H2”セルに“=RIGHT(" " & G2,4)”、“H3”セルに“=RIGHT(" " & G3,4)”が入りました。 次に、“A1”セルに“=LEFT(H1,1)”、“B1”セルに“=MID(H1,2,1)”、“C1”セルに“=MID(H1,3,1)”、“D1”セルに“=RIGHT(H1,1)”を書き込みます。 A1~D1に空欄、1、2、3が表示されます。 A1~D1を選択し、下方にドラグコピーをします。 コピー後の各セルの数式は自分で確かめてください。 ABCD 123 9 1107 と表示され、目的が達成した。
お礼
回答をありがとうございました。
- maron--5
- ベストアンサー率36% (321/877)
◆こういうことでしょうか? ___A__B__C__D__E 1______1__2__3__9 2 3__1__1__0__7 A3=LEFT(RIGHT(" "&($B$1&$C$1&$D$1)*$E$1,5-COLUMN(A1))) ★右にコピー
お礼
回答をありがとうございました。
》 1行2列に1、1行3列に2、1行4列に3、2行4列に9と入力し、計算して、 》 3行1列に1、3行2列に1、3行3列に0、3行4列に7と表示させる。 Excel では、上のことを セル B1 に 1、C1 に 2、D1 に 3、E1 に 9、 A3 に 1、B3 に 1、C3 に 0、D3 に 7 などと説明するのが一般的なのですが、上のように表現されたのには何か特別な理由があるのでしょうか?(素朴な疑問です)
お礼
回答をありがとうございました。 単に言葉を知らなかったまでですが、勉強になりました。
被乗数,乗数,積がいずれも4桁以内という前提で、 A3セルを =TRIM(LEFT(RIGHT(" "&($A1&$B1&$C1&$D1)*($A2&$B2&$C2&$D2),5-COLUMN()),1)) として右方にフィルすればご要望のように動作するかと思います。 ※" "は全角スペースを3つ連ねています。 連ねる数は、積を表示する部分の列数マイナス1個です。 半角でも構わないのですが、このサイトの仕様上、 半角スペースを連ねることができないので全角を使っています。 ※5-COLUMN()の5は、下一桁目を表示するセルの列番号プラス1です。 ご参考まで。
お礼
回答をありがとうございました。
- nayuta_lot
- ベストアンサー率64% (133/205)
こんにちは 3桁同士の計算として999×999は998,001なので 6桁の答えになるように作ってみました。 また、私もANo.1様と同じようにLEFT関数を最初は使ってみましたが、 90×9のようなとき810にならなければいけないのですが、 8810となって、1000の桁が8を拾ってしまったので次のよう にしてみました。 まず。 1行目、2行目のA、B、Cは空白にして 計算する数値を入れる場所をD、E、F列に移します。 1、2、3 = D1、E1、F1 9 = F2 式が複雑になるのでF3にANo.1様と同じように =(D1&E1&F1)*(D2&E2&F2) と入力します。 次にA列から順に A4 =IF(ISERROR(MID(D3,LEN(D3)-5,1)),"",VALUE(MID(D3,LEN(D3)-5,1))) B4 =IF(ISERROR(MID(D3,LEN(D3)-4,1)),"",VALUE(MID(D3,LEN(D3)-4,1))) C4 =IF(ISERROR(MID(D3,LEN(D3)-3,1)),"",VALUE(MID(D3,LEN(D3)-3,1))) D4 =IF(ISERROR(MID(D3,LEN(D3)-2,1)),"",VALUE(MID(D3,LEN(D3)-2,1))) E4 =IF(ISERROR(MID(D3,LEN(D3)-1,1)),"",VALUE(MID(D3,LEN(D3)-1,1))) F4 =IF(ISERROR(MID(D3,LEN(D3),1)),"",VALUE(MID(D3,LEN(D3),1))) と入力します。 答えの文字列長から、1の桁は右端なのでそのまま、10の桁は 文字列長-1の場所なのでMID(D3,LEN(D3)-1というようにしてみました。 F3の答えは目障りでしたらグループ化して閉じちゃってください。 とりあえず、これで999×999の計算結果が出せると思います。 試してみてください。 ご参考まで
お礼
回答をありがとうございました。
- masah43
- ベストアンサー率42% (3/7)
計算する桁数が書かれてないので仮定した上で例を出します。 (条件) ・3桁×1桁に限定 ・3行5列(E3)セルを作業用に使う (例) [E3]=CONCATENATE(B1,C1,D1)*D2 [A3]=IF(LEN(E3)>3,MID(E3,LEN(E3)-3,1),"") [B3]=MID(E3,LEN(E3)-2,1) [C3]=MID(E3,LEN(E3)-1,1) [D3]=MID(E3,LEN(E3),1) E3にいったん答えを作り、各セルに1桁ずつ該当する桁を当てはめています。答えが3桁の場合と4桁の場合があるので3桁の場合A3(千の位)は空白になるようにしています。 作業用セルが使えないならばE3の式をA3~D3の式中のE3の部分に埋め込んでください。
お礼
回答をありがとうございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
A B C D E 1 1 2 3 2 9 3 式が長くなるので、取り合えず E3セルに =(B1&C1&D1)*(B2&C2&D2) で答えになると思います。 D3セル =RIGHT(E3,1) C3セル =LEFT(RIGHT(E3,2),1) B3セル =LEFT(RIGHT(E3,3),1) A3セル =LEFT(RIGHT(E3,4),1) でいけると思います。E3セル省略するなら、E3の部分を(B1&C1&D1)*(B2&C2&D2)と入れ替えて作ってください。
お礼
回答をありがとうございました。
お礼
回答をありがとうございました。