表に入力してあるよみがなを並び替えたいのですが、スペースが間に入っているものと入っていないものがあるので、次のような式を使ってスペースをとりました。
=IF(読み仮名データセル="","",IF(ISERROR(LEFT(読み仮名データセル,SEARCH(" ",読み仮名データセル,1))),読み仮名データセル,LEFT(読み仮名データセル,SEARCH(" ",読み仮名データセル,1)-1)&RIGHT(読み仮名データセル,LEN(読み仮名データセル)-SEARCH(" ",読み仮名データセル,1))))
回りくどい式ですが、もし読み仮名のデータがあれば、スペースの位置を検索して、スペースがなければそのまま読み仮名を表示、あればスペースの右と左だけを結合して表示する、というものです。
これを 名簿表のずっと右の方で作業して、スペース無しの読み仮名を書き出しました。
この読み仮名の一覧を、もとの読み仮名のところに「値だけ貼り付け」して、並び替えをしたのですが、なぜか以下のようになってしまいます。
最初のデータ

「    」(スペース)
あおのあおこ
えんどうえつ
うちだうちこ
かきだかきこ
いむらいまこ
「    」(スペース)

これを並び替えしてみると、

「    」(スペース)
「    」(スペース)
あおのあおこ
いむらいまこ
うちだうちこ
えんどうえつ
かきだかきこ

となってしまいます。

本当は、「    」(スペース)には列の一番最後に言って欲しいのですが・・・。
こうなって欲しい・・

あおのあおこ
いむらいまこ
うちだうちこ
えんどうえつ
かきだかきこ
「    」(スペース)
「    」(スペース)

なにかいい方法はあるでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (7件)

計算式が入っている空白のセルをnullにします。


空白セルのある列の最上段のセルを
1クリックしてからマクロを開始してください。

一度でも使用したことのあるセルを最終行と
するので、ごみが下の方にあるとそこまで
処理します。使っていないセルが表外にある
時は削除して、上書保存後に使ってください。
ごみは時間がかかるという程度の問題ですが。

これなら行を指定しなくても全部処理します。
Range("A1").Select
などで開始位置を指定すればマクロから自動です。

ちなみに空白を取り除くものは下の関数もあります。
=SUBSTITUTE(A1," ","")置き換え





Sub 計算式をnullに()

開始位置 = ActiveCell.Address
現在行 = ActiveCell.Row
現在列 = ActiveCell.Column
最終位置 = ActiveSheet.Cells.SpecialCells(xlLastCell).Address
最終行 = ActiveCell.Row
最終列 = ActiveCell.Column

For I = 現在行 To 最終行

If LenB(Cells(I, 現在列)) = 0 Then
Cells(I, 現在列) = Null
End If

Next

Range(Cells(現在行, 現在列), Cells(最終行, 現在列)).Select

End Sub


マクロの使い方などは質問ください。
    • good
    • 0
この回答へのお礼

さっそく試してみました。
何故か
Cells(I, 現在列) = Null
ではうまくいきませんでしたが、
Cells(I, 現在列).ClearContents
にしたところ、並び替えが思い通りに動くようになりました。
ありがとうございました。

お礼日時:2002/02/16 16:49

スペースの場合は適当な漢字を入れておくっていうのは、


=IF(読み仮名のセル="","一",SUBSTITUTE(読み仮名のセル," ",""))
のような感じです。「一」は漢数字の1です。
これで、読み仮名のセルに何も入っていない場合は「一」と表示が出ます。
これで並べ替えをすると、「一」の入っているセルは実際にひらがなで
読み仮名が入っているセルより下に行きます。
表示は下のようになります。



あおのあおこ
えんどうえつ
うちだうちこ
かきだかきこ
いむらいまこ

この回答への補足

なるほど~・・。それも一手かもしれませんねぇ。
なるべくシンプルな形で解決したいとは思うのですが、いざとなったらそれですねぇ。

補足日時:2002/02/16 06:20
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/02/16 06:25

毎回あるということでしたら


マクロで作られてはいかがですか。
並べ替えてから、
スペースだけ最下段へ移動
というようなものを。
マクロでも可ですか。
マクロを使ったことはありますか。
作り方は質問ください。

この回答への補足

今回もマクロを使っているのですが、VBAは使ったことがないので マクロの編集は手探り状態です。
  (^_^; アハハ…

もし 「 値の貼り付け 」をした後の ""を貼り付けたセルだけ、もう一度選択して、「デリート」をかけられたら、解決するのですが、そういうこともできますでしょうか?(手作業で そういうセルを選択して「デリート」をすると、並び替えがうまくいくことがわかったので)

補足日時:2002/02/16 06:25
    • good
    • 0
この回答へのお礼

ありがとうございます。教えていただけたら幸いです。

お礼日時:2002/02/16 06:31

最初に降順で並び替えて空白データを後ろに持っていって、次に空白以外のデータを昇順で並び替えるってのはどうでしょう?

この回答への補足

エクセル初心者でも 直感的に扱えるよう、なるべく手作業を排除したいのです。

補足日時:2002/02/14 22:44
    • good
    • 0
この回答へのお礼

ありがとうございます。ほかにも何かアイデアがありましたら教えていただけますか?

お礼日時:2002/02/14 22:46

どうしても文字よりもスペースが上に来てしまうので、



 1.あとで自分で入れ替える
 2.スペースの場合は適当な漢字を入れておく
 3.スペース部分には全角のスペース1つ、読み仮名が入力されている場合は
   読み仮名の前に半角スペースを入れて
    データ→並べ替え→オプション→大文字と小文字を区別するにチェック

などしか無いと思います。

あと、スペースを除くには、
 =SUBSTITUTE(読み仮名データセル," ","")
で簡単に出来ます。

この回答への補足

データ量が多く、かつエクセル初心者が扱えるように、なるべく手作業は減らしたいのです。
名簿用のスペースは毎月150件ほどを用意してあり、毎回漢字をいれたり 入れ替えをするのは避けたいと思っています。
また、私の立てた式をごらんいただきましたように、スペース部分には""、つまり空白を指定してあるので、何も入っていないはずなのに、上記のような結果になってしまうのです。何もない=""セルをコピーして「値を貼り付け」すると、どうも何かがセルに代入されてしまうのでしょうか・・?教えていただいた、=SUBSTITUTE(読み仮名データセル," ","") という式も試してみましたが やはり同じ結果になりました。

補足日時:2002/02/14 22:42
    • good
    • 0
この回答へのお礼

ありがとうございます。ほかにも何かアイデアがありましたら教えていただけますか?

お礼日時:2002/02/14 22:49

これはスペースだけ(スペースのデータが存在する)のセルがあるということですよね?


それならば、このスペースだけのセルを空セルにすればいいです。
具体的には、スペース(” ”)をヌル(””)にすれば可能です。

この回答への補足

私の立てた式をごらんいただきましたように、参照先の読み仮名データセルが空白セルの場合には、""つまり空セルとするように指定してあるのです。
普通の空白セルは並べ替えの時には最後尾にいくのに、なぜか この場合は最前列にきてしまうのです。

補足日時:2002/02/14 22:50
    • good
    • 0
この回答へのお礼

ありがとうございます。ほかにも何かアイデアがありましたら教えていただけますか?

お礼日時:2002/02/14 22:53

並び替えの列を


=IF(LEN(TRIM(参照セル))=0,"ん",参照セル)
なんてしてはいかがでしょうか?

この回答への補足

名簿に使う表は毎月150件ほど用意してあるのですが、なにかもっと・・・スマートな方法はないでしょうか・・・?

補足日時:2002/02/14 22:35
    • good
    • 0
この回答へのお礼

早速のお返事をありがとうございます。ほかにも何かアイデアがありましたら教えていただけますか?

お礼日時:2002/02/14 22:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q■□■読み方■□■ #N/A, #VALUE!, #REF!,DIV/0!,#NUM!, NAME?, #NULL

前に、似たような質問をされている方がおりましたが、明確な答えが出ておりませんでしたので教えていただけますでしょうか。
以下のようなエクセルのエラー項目の
読み方を教えていただけませんでしょうか。
#N/A
#VALUE!
#REF!
DIV/0!
#NUM!
NAME?
#NULL
よろしくお願いします。
なお、意味は結構です。あくまで読み方を教えていただきたいのです。
しかも、カタカナでお答えいただくと助かります。
勝手言って申し訳ないですが、
よろしくお願いします。

Aベストアンサー

<方法1>略語の由来となっている英語を言う。
※冠詞は省いています。英語の表現は他にもあります。

#N/A Not Available Value ナット・アヴェイラブル・ヴァリュー
#VALUE! Wrong Type of Value ローング・タイプ・オヴ・ヴァリュー
#REF! Invalid Cell Reference インヴァリッド・セル・リファレンス
#DIV/0! Divided by Zero ディヴァイディッド・バイ・ゼロ
#NUM! Invalid Number インヴァリッド・ナンバー
#NAME? Unrecognized Name アンリコグナイズド・ネイム
#NULL! Null Intersection ナル・インターセクション

<方法2>書いてある字をそのまま読む。

#N/A エヌエー
#VALUE! バリュー
#REF! レフ
#DIV/0! ディブゼロ
#NUM! ナム
#NAME? ネーム
#NULL! ナル(ヌル)

<方法3>適当な英語で代表させて「エラー」をつける。

#N/A ノットアベイラブルエラー
#VALUE! バリューエラー
#REF! リファレンスエラー
#DIV/0! ディバイデッドバイゼロエラー
#NUM! ナンバーエラー
#NAME? ネームエラー
#NULL! ヌルエラー

<方法4>日本語を混ぜる。

#N/A 無効エラー
#VALUE! バリューエラー
#REF! 参照エラー
#DIV/0! ゼロ割りエラー
#NUM! ナンバーエラー
#NAME? 名前エラー
#NULL! ヌルエラー

<方法1>略語の由来となっている英語を言う。
※冠詞は省いています。英語の表現は他にもあります。

#N/A Not Available Value ナット・アヴェイラブル・ヴァリュー
#VALUE! Wrong Type of Value ローング・タイプ・オヴ・ヴァリュー
#REF! Invalid Cell Reference インヴァリッド・セル・リファレンス
#DIV/0! Divided by Zero ディヴァイディッド・バイ・ゼロ
#NUM! Invalid Number インヴァリッド・ナンバー
#NAME? Unrecognized Name アンリコグナイズド・ネイム
#NULL! Null Intersection ナル...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1という

エクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1,3,1というような順番で数字が並んでいます。

その数字の中で、1→3と3→1になるものがいくつあるか求めたいのですが、出す関数・マクロがわかりません。
教えていただけないでしょうか?

よろしくお願いします。

Aベストアンサー

こんばんは!

>A列の中に
とは行方向に数値が入っている!というコトでしょうか?

そうであれば
表示したいセルに
=COUNTIFS(A1:A1000,1,A2:A1001,3)+COUNTIFS(A1:A1000,3,A2:A1001,1)
としてみてください。

「1」の次の行が「3」の場合と
「3」の次の行が「1」の場合をプラスしています。m(_ _)m

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

QEXCEL2000で「01,02」や「03,05」と入ったセルを「1,2」や「3,5」のように数字の前の0を消したい。

過去の質問も調べてみましたが、見当たりませんでしたので質問させてください。

エクセルのデータで、セル内に「01,02,04,06」や「02,08,10」と
いったような数字が入っていますが、
実際には数字の前の0(ゼロ)が不要で、最終的には「1,2,4,6」や
「2,8,10」のようにしたいのですが、やり方がわかりません。

どなたか方法がお分かりになる方がいらっしゃいましたら、
どうぞ教えてください。
よろしくお願いします。

Aベストアンサー

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"0","",1),",0",","),",,",",0,")

解説(最後の部分が必要ないなら数式から外してください。)
SUBSTITUTE(A1,"0","",1) => 先頭の0のみを消します
「01,02,04,0,06」=>「1,02,04,0,06」
SUBSTITUTE(上記の結果,",0",",") =>後続の,の後の0を消します
「1,02,04,0,06」=>「1,2,4,,6」
SUBSTITUTE(上記の結果,",,",",0,") =>内容が,0,の場合の誤消去を戻します。
「1,2,4,,6」=>「1,2,4,0,6」

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QEXCELでCOUNTIF(,,)のようにセルの書式を条件でセルの数をカウントする方法

表計算ソフトのEXCELでCOUNTIF(,)関数では検索条件には数字や文字列だけのようですが、セルの書式(塗りつぶした色等)の検索条件でセルの数をカウントする方法はありませんか?
生産計画日程表に実績日を色塗りして日程毎に集計する場合に有効な気がします。計画日のセルに△を記入して、実績日のセルに○等を記入すればできることはできるのですが、計画日と実績日が同じ場合はうまくいきません。紙の上でやるように計画に△、実績日のセルを赤色に着色して、赤色のセルをカウントさせることができれば、計画と実績が同じでも問題なく好都合なのです。データーが少ない場合は紙の帳票なら簡単にできるのですが、データーが多いと大変です。

Aベストアンサー

過去ログの一例:
http://oshiete1.goo.ne.jp/qa2165726.html

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q#,##0.00;-#,##0.00;#,##0.00;@というセルの書式設定について

エクセルで、労働時間の表があります。
A列に氏名、B列に日付、C列に労働時間数が入っています。
そのC列のデータは、9.91とか5.85とかが入っているのですが、
セルの書式設定の表示形式のユーザー定義を見ると、
下記のように書かれています。

#,##0.00;-#,##0.00;#,##0.00;@

作った人はすでにおらず、わかる人もいません。
これは、どういう意味でしょうか。
そして、何故、標準や数値じゃなく、
わざわざこんなふうに設定したのか知りたいのです。
すみませんが、宜しく御願い致します。

Aベストアンサー

正の数の書式;負の数の書式;ゼロの書式;文字列の書式

http://support.microsoft.com/kb/883199/ja


人気Q&Aランキング

おすすめ情報