- ベストアンサー
エクセルでハイフンで示した数値の範囲を別々の数値へ
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
かなり手抜きではありますが、ユーザ定義関数を作ってみました。 以下のコードを標準モジュールに入れ、適当なセルに =fSample(A1) の様に入れて下さい。 #この例でのA1セルは変換対象の文字列が入っているセルです。 Function fSample(sData As String) As String sOne = Split(sData, ",") For i = 0 To UBound(sOne) If InStr(sOne(i), "-") > 0 Then sWork = Split(sOne(i), "-") sOne(i) = sWork(0) For j = Int(sWork(0)) + 1 To Int(sWork(1)) sOne(i) = sOne(i) & "," & j Next j End If fSample = fSample & "," & sOne(i) Next i fSample = Right(fSample, Len(fSample) - 1) End Function
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにしてもよいでしょう。 例えばA1お示しのようなデータが入力されているとします。 A1セルを選択してから「データ」タブの「区切り位置」を選択します。 「カンマやタブなどで区切られた・・・・」にチェックを付けて「次へ」、「カンマ」にチェックをしてから「次へ」、「表示先」が$A$1になっているところを$C$1に変更して「完了」します。 C1セルからお示しのケースですとH1セルまでにデータが表示されます。ここではM1セルまでにデータが表示されることも考えて次のようにします。 C2セルには次の式を入力してM2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。例えば10行まで下方に、 =IF(AND(COUNT(C$1)>0,C$1<41000),"",IF(AND(C$1>41000,COUNTIF(C$1,"*-*")=0),IF(ROW(A1)<=DAY(C$1)-MONTH(C$1)+1,MONTH(C$1)+ROW(A1)-1,""),IF(COUNTIF(C$1,"*-*")>0,IF(ROW(A1)<=MID(C$1,FIND("-",C$1)+1,3)*1-LEFT(C$1,FIND("-",C$1)-1)*1+1,LEFT(C$1,FIND("-",C$1)-1)*1+ROW(A1)-1,""),""))) その後にN1セルには次の式を入力して右横方向にドラッグコピーします。 =IF(COLUMN(A1)>COUNTIF($C:$M,">0")-COUNTIF($C:$M,">41000"),"",IF(COLUMN(A1)=1,SMALL($C:$M,COLUMN(A1)),M1&","&SMALL($C:$M,COLUMN(A1)))) その後にB1セルには次の式を入力します。 =INDEX(N1:XX1,COUNTIF(N1:XX1,"*?")+1) これでB1セルにはお求めのデータが表示されます。
お礼
遅くなりましたが、ありがとうございました。
関連するQ&A
- エクセルで数値の間にハイフンを入れる方法
お世話になります。 エクセルで、11ケタの数字のあいだにハイフンを入れたいのですが、その入れ方がわかりません。 例: 11122334455 ⇒111-223344-55 調べると近いやりかたは見つかったのですが、なにかうまくいきません。 また逆にハイフンが入っている数値のハイフンの取り方も教えていだだければありがたいです。 例: 111-223344-55 ⇒11122334455 何卒よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- エクセルのハイフンあり並べ替えで
エクセル初心者です。例えばハイフンありの27-1 234-1 234-2 28-1 62-1 62-5 62-6 62 などの数字をエクセルで若い順番に並べかえするのは区切りで分割して並べ替える方法が簡単というのは過去の質問でわかったのですが、その後セルが分割せれてる為もとのハイフンありの形にもどす方法がわかりません。結合だと27や234のみの表示になります。色々試したのですがうまくいきません。良い方法を知っている方がおられましたら教えていただきたいです。区切りで並べ替え以外の方法でもかまいません。宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで12桁の数値に4桁ごとに―を入れたい
エクセルで既に入力されている12桁の 数値列に4桁ごとにハイフンを入れたいです。 1234567890AB → 1234-5678-90AB のような感じです。 セルの書式設定でユーザー定義を使い 変換できるのではと察しているのですが、 「種類」のところにどのように指定すれば いいかわかりません。 書式設定、またはほかの方法でハイフンを 入れる方法を教えていただけますか。
- ベストアンサー
- Excel(エクセル)
- エクセルで -(ハイフン)だけのセルを置換したいのですが、、、
エクセル2000です。 -だけのセルと1-2や、A-Bなど、数字や文字が混在している表があります。 その中の、-(ハイフン)だけのセルを置換したいのですが、方法はありますでしょうか? わかる方がいましたら教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excel ハイフンの区切り 数式でお願いします。
exel2000利用です。よろしくお願いいたします。 数式で住所の細分化ができるようにしたくて、 住所と番地とマンション名を分けるところまでは自力でできたのですが、 番地などのハイフンをうまくわける方法を悩み中です。 要件としては、、 ハイフンを含めた数字部分のセルを、3つのセルに分けたいのです。 例 「123-45-67」 → 「123」 「45」 「67」 「1234-567」 → 「1234」「567」「」 「12」 → 「12」 「」 「」 住所なので必ずしも3項含まれるわけではありません。 上記のように分けられるようにできますでしょうか? ハイフンは小文字で統一されています。 区切り位置を利用する方法ならわかるのですが、、 随時データが増えていくので、数式で対応したいのです。 何卒ご教授、ご助言お願いいたします。
- ベストアンサー
- Windows XP
- エクセルの範囲から残りの数値を取り出す
エクセルの範囲から残りの数値を取り出す方法を教えてください 図の様に縦方向に1~9の数値入ったセル範囲があります そこから 入力されている数値外の9以内の数値をとりだす マクロを使わないで 関数だけでできるでしょうか?
- ベストアンサー
- SE・インフラ・Webエンジニア
- excelであるセル内の数値をある文字に変換したい
excelで、ある列のセルにある数値の内、ある指定範囲内の数値のみある文字列に変換したい場合、どんな方法(関数やマクロ)があるでしょうか? 例として 10 20 100 →XX 1000→XX XX 50 100以上をXX(範囲外)に変換したい
- ベストアンサー
- その他MS Office製品
- エクセル、数値の重複範囲を
今、エクセルでのデータ整理に手間取っています。 三つの数値に幅のあるデータの重複範囲の最大・最小を取りたいのですが、エクセルで可能でしょうか? 詳細は以下のような感じです 数値1 : A1-------A2 数値2 : B1-----------------B2 数値3 : C1-------C2 重複範囲最大値 A2 重複範囲最小値 C1 少ないデータなら地道にやるのですが、なにぶんデータが膨大でして・・・ ご存知の方、ご教授願います。 なお、使用しているエクセルは 2003 です。
- 締切済み
- オフィス系ソフト
- エクセルでの置換方法
エクセルにて (例)B2セルで06-52525のように、ハイフン後の数値が5なら06の前にKを挿入し (例)B5セルで06-12345のようにハイフン後の数値が1なら06の前にGを挿入し C列のような結果を得たいと思っています。 置換(挿入)方法をご存知でしたら教えて頂きたく、ご教授お願いします。
- ベストアンサー
- オフィス系ソフト
お礼
遅くなりましたが、ありがとうございました。