🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Q&A

解決済

2回答

1207閲覧

乱数生成における先頭0配置について(値が1桁の場合に先頭0を入れて2桁としたい)【CSV】【Excel】

urozero

総合スコア21

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

0グッド

0クリップ

投稿2021/03/02 02:36

編集2021/03/02 02:57

お世話になっております。

イメージ説明

###前提条件
画像のように、4桁の数字から乗算を使い8桁の乱数を生成したいです。
(4桁の組み合わせにより、2桁の数字を4つ算出し結合するイメージです)

画像の列の説明です。
A列:番号N(4桁)
B列:生成したい乱数R(8桁)
G,H,I,J列(各2桁分)の数値の結合

C列:番号Nの1桁目
D列:番号Nの2桁目
E列:番号Nの3桁目
F列:番号Nの4桁目

G列:Rの1,2桁(C列D列)
H列:Rの3,4桁(D列
E列)
I列:Rの5,6桁(E列F列)
J列:Rの7,8桁(C列
F列)

###質問内容
この時、下記の場合に乱数Rが8桁分生成できません。(黄色の塗りつぶし部分)
➀番号Nに「0」が含まれる→G,H,I,J列のうち、最低2つ「0」で1桁しかない
➁G,H,I,J列の算出結果が1桁しかない

G,H,I,J列において、1桁部分の先頭に0を配置する処理を教えてほしいです。
よろしくお願いいたします。

###試したこと
➀セルの書式設定→ユーザー定義にて、「0#」と定義し01や09と表記できたが(00は不可だった)、
乱数Rの結合時点で無効となってしまう。
表示上ではなく、データとして先頭に0を配置しなければならないが、方法がわからない状況です。

➁ユーザー定義にて、「00」と設定したが、乱数Rの結合時点で無効となってしまう。
G,H,I,J列を値として新列にコピペ → セルを文字列に変えても(逆の順番で行っても)、その時点で先頭0が消えてしまう。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

表示形式の設定は、あくまでそのセルで値(今回だと整数)をどのように表示するかを決めるもので、値を式で使うときには反映されません。

今回の要求は、「0埋めされた2桁の数字からなる文字列」を生成し、それらを結合して「8桁の数字からなる文字列」を作りたいということですから、値そのものに文字0を追加する必要があります。

たとえば、関数TEXTを利用すれば、=TEXT(C2*D2,"00")で「0埋めされた2桁の数字からなる文字列」が得られます(C2やD2の値によっては3桁以上になりますが、今回は考えないでいい)。

G列からJ列までの数式をTEXTを使う形に修正してください。

B列の数式では=G2&H2&I2&J2のように関数INTを使わない数式に修正すると、「8桁の数字からなる文字列」が得られます。もし、B列の値を数値として扱いたいのであれば、B列の数式は=INT(G2&H2&I2&J2)のまま変更せず、B列だけ書式設定を使って「8桁に0埋めする表示」にしてください。

投稿2021/03/02 03:00

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urozero

2021/03/02 04:04

ご回答ありがとうございます。 関数TEXT使い、実現できました! 丁寧に説明いただいたおかげで理解も深まりました。 感謝申し上げます(*^^*)
guest

0

文字列として処理することになりますね。
=RIGHT("0"&G2,2)&RIGHT("0"&H2,2)&... とか。

投稿2021/03/02 03:02

FromMZ1500

総合スコア496

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urozero

2021/03/02 04:05

ご回答ありがとうございます。 今回はDaregadaさんをベストアンサーに選ばせて頂きます。 また機会があれば、ご回答お待ちしております!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問