出勤簿 兼 給料計算表 を作っています。

J4セル内の"訪60×"という文字列を検索し、もしあれば"訪60×"のひとつ右の1文字列(必ず数字1文字です)を表示、なければ""(なにもなし)を表示する関数を作っていただけないでしょうか。
何卒よろしくお願いしますm--m

J4セル内:  +訪問
       訪60×2/臨60×0/

A 回答 (2件)

失礼。

質問タイトルに「EXCEL」とありましたね。
IFERRORは Excel2007からの関数です。
    • good
    • 0
この回答へのお礼

すごすぎる、なんという速さですか!
ありがとうございましたm--m

お礼日時:2017/05/15 13:16

Excelの質問かどうかすら分かりませんが Excelだとしてもバージョン


くらいは書いた方がいいと思います。

=IFERROR(VALUE(MID(J4,FIND("訪60×",J4)+4,1)),"")
    • good
    • 0
この回答へのお礼

ありがとうございます。EXCEL2010です。早速試してみたいと思います。
神速のご返答本当に感謝しております。

お礼日時:2017/05/15 13:13

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

このQ&Aを見た人はこんなQ&Aも見ています

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

QExcel2003で、文字列のセル+文字列のセルを実行するとエラーになりますか

Excel2003で、文字列のセル+文字列のセルを実行するとエラーになりますか、それとも0になりますか?今エクセルがありませんので試行できません。よろしくお願いします。

Aベストアンサー

文字列セルで四則演算を行うと、エラー(#VALUE)が出ます。

ただし、SUM関数なら文字列のセルは無視し、エラーは出ません。
参考までに。

Qセルに最初からある文字列を表示させておいて、そのセルを選択したら、その文字列の後から3桁数字を入力できるようにしたい

タイトルが長くてすみませんm(_ _)m
エクセル(97)に関しての質問です。

例えば、セルの中に最初から「15-G」という文字列を
表示させておいて、(ダブルクリックして編集という
形じゃなくて)そのセルを選択しただけで、
その文字列の後から3桁の数字を入力できるように
したいのですがいい方法はないでしょうか?

他にやってみた方法で、ユーザー定義(私が考えた定義→「"15-G"@」)でセルに3桁の数字(例えば567)を入力しますと、「15-G567」というように表示させる事が出来たのですが、何も入力されてない時は当たり前ですが空白のままです。
出来れば、最初から「セルの中の始めに15-Gという文字列を」表示させておきたいのですが…

Aベストアンサー

diashun です。
諦めずに挑戦するお気持ち、敬意を払います。
さて、エラー箇所を特定するためにデバッグモードでVBAを動かしてみましょう。
1.「Sheet1」のVBE編集画面を開いてください。
「Private Sub CommandButton1_Click()」の行とプロジェクトツリーの境界で右クリックしてください。
これでその境界部分に茶色の●が表示され、「Private Sub CommandButton1_Click()」の行も茶色の帯がつきましたか?
これは「ブレークポイント」といい、プログラムの実行を任意に中断する場合に指定します。
2.Excelの「Sheet1」に戻り、「CommandButton1」をクリックします。(この時、コントロールツールボックスのデザインモードを終了しておいてください)
3.VBEの[Sheet1」のブレークポイントのところで黄色い帯が表示されてプログラムの実行が中断されていますか?
ここまで「OK」でしょうか?
4.次の行からプログラムの実行を継続させます。
「F8」キーを一回押してください。
黄色い帯が次行(Set_String1)へ移動しましたか?
さらに「F8」キーを押すと「Module1」の「Set_String1」プロシージャVBE画面へ遷移するはずですが、ここまで「OK」ですか?
5.「F8」キーを一回ずつ押して一行ずつ実行してください。
エラー箇所があれば何らかのエラーダイアログとメッセージが表示されるはずです。その時「終了する」と「デバッグする」のボタンも表示されるので「デバッグする」のボタンを押すと、エラー行の場所が黄色い帯で表示されますので、その行内容とエラー表示メッセージの文言をお知らせ下さい。

>「Module1」の所が紺色に反転しています・・・は関係ないと思います。

ただ念のため「ThisWorbook」「Sheet1」「Module1」のVBEが下記の通り間違いないか、再確認もしておいてください。
●「ThisWorbook」のコード
Option Explicit

Private Sub Workbook_Open()
Dim strDefAry() As String
Dim i As Integer
ReDim strDefAry(0 To 9) As String '仮に10種類の文字列(ランダムな文字)を登録します。

strDefAry(0) = "15-G"
strDefAry(1) = "11-A"
strDefAry(2) = "15-V"
strDefAry(3) = "10-H"
strDefAry(4) = "11-R"
strDefAry(5) = "13-Y"
strDefAry(6) = "19-X"
strDefAry(7) = "00-D"
strDefAry(8) = "01-W"
strDefAry(9) = "15-K"

For i = 0 To 9
Sheet1.ListBox1.AddItem strDefAry(i)
Next i

Sheet1.ListBox1.Visible = True
ThisWorkbook.Sheets(1).Activate

End Sub

●「Sheet1」のコード
Option Explicit

Private Sub CommandButton1_Click()
Set_String1
End Sub

●「Module1」のコード
Option Explicit

Public Sub Set_String1()
Dim strCell As String, lngRowNum As Long, strDefStr As String
Dim i As Integer

strCell = InputBox("入力する列を「A,B,C,・・・」と入力して下さい。", "列入力")
strDefStr = Sheets(1).ListBox1.Text
lngRowNum = ActiveCell.Row
Call Set_String2(strCell, strDefStr, lngRowNum)
End Sub

Public Sub Set_String2(strCell As String, strDefStr As String, lngRowNum As Long)
Dim i As Integer

Range(Cells(lngRowNum, strCell), Cells(lngRowNum, strCell)).Activate
Range(Cells(lngRowNum, strCell), Cells(lngRowNum, strCell)) = strDefStr
End Sub

あと、Excelの「Sheet1」に「CommandButton1」と「ListBox1」は貼り付けられていますね?
以上、またご連絡をお待ちします。
でも、お忙しいならいつでもいいですよ。
気長にお付き合いしますので、(^_^)

diashun です。
諦めずに挑戦するお気持ち、敬意を払います。
さて、エラー箇所を特定するためにデバッグモードでVBAを動かしてみましょう。
1.「Sheet1」のVBE編集画面を開いてください。
「Private Sub CommandButton1_Click()」の行とプロジェクトツリーの境界で右クリックしてください。
これでその境界部分に茶色の●が表示され、「Private Sub CommandButton1_Click()」の行も茶色の帯がつきましたか?
これは「ブレークポイント」といい、プログラムの実行を任意に中断する場合に指定します。
2....続きを読む

Qセルの高さを「指定したセルの高さ×セル内の行数」に自動で修正する方法について

エクセル2010を使っている者ですが、セルの高さの設定のことで伺います。

「ホーム」タブ→「セル」のリボン→書式で、セルの高さを指定することができますが、そこで指定すると、1行で入力されたセルのみでなくセル内で行の折り返しがあって複数行になっているセルについても、指定したとおりの高さになってしまいます。(例えば、高さを14にすると、1行で入力されたセルのみでなく2行で入力されたセルについても高さが14になってしまい、入力した値が表示されなくなってしまう)

セルの高さを指定しつつ、複数行になったセルについては「指定したセルの高さ×セル内の行数(正確には、そのセルの所属する行中の最大行になったセルの行数)」に自動で修正されるようにする方法はありますか?

Aベストアンサー

こんにちは。

おそらくは、マクロでよろしいかとは思いますが、「自動で修正される」というように設定してしまうと、私なら、うっとうしく感じますが、こういう感覚は、人それぞれですから言明はしません。

実際に、私が使う目的でマクロを考えてみました。

「個人用マクロブック(PERSONAL.XLSB)」
「標準モジュール」にマクロを置き、
「クイックアクセスツールバー」に登録。
(私は、ショートカットにはしません。たぶん、忘れてしまうからです)

なぜ、「個人用マクロブック」に登録するかというと、2点の利点があります。

ひとつは、保存する拡張子の影響がない(xlsx/xlsm)。もう一つは、クイックアクセスツールとして、いつでも使える。

なお、十分に納得のいかない内容でしたら、以下のマクロは個人用マクロブックにはいれるべきではありません。
今回は、特別に、マクロに内容説明を入れましたので、それを読めば、何をしようとしているか分かるはずです。
ふつうは、このような解説を入れませんから、納得がいけば解説部分は消してよいです。

'//
Sub Lines_CellHeight()  'この名前は、臨時ですから、適当に変えてください。(日本語名可)
'No. 9043589
 Dim c As Range
 Dim i As Long
 Dim h As Double
 Dim stdHt As Double
 Dim ht As Double
 If TypeName(Selection) <> "Range" Then  'マウスで選択した場所が、セルの範囲でないなら、
  MsgBox "該当範囲を選択してください。", vbExclamation  'メッセージを出して、
  Exit Sub  'マクロは終わる
 End If
 stdHt = ActiveSheet.StandardHeight  '標準のセルの高さ
 For Each c In Selection  '選択範囲からひとつのセルを検討する
  If c.HasFormula = False And Not IsEmpty(c) Then  'セルは数式がないことと、空ではないなら、
   i = Len(c.Value) - Len(Replace(c.Value, vbLf, ""))  'セル内の改行コードの数
   If i > 0 Then  '一つでもあれば、
    ht = c.Rows.RowHeight  'セルの行の高さ
    If stdHt * (i + 1) > ht Then  'セルの高さよりも、標準のセルの高さ✕(改行コード数+1)が高ければ、
     c.FormatConditions.WrapText = False  '書式の折り返して全体を表示する、Offにし
     c.EntireRow.RowHeight = ht * (i + 1)  'セルの高さ✕(改行コード数+1) の高さにする
    End If
   End If
  End If
 Next c
End Sub

こんにちは。

おそらくは、マクロでよろしいかとは思いますが、「自動で修正される」というように設定してしまうと、私なら、うっとうしく感じますが、こういう感覚は、人それぞれですから言明はしません。

実際に、私が使う目的でマクロを考えてみました。

「個人用マクロブック(PERSONAL.XLSB)」
「標準モジュール」にマクロを置き、
「クイックアクセスツールバー」に登録。
(私は、ショートカットにはしません。たぶん、忘れてしまうからです)

なぜ、「個人用マクロブック」に登録するかというと、2点の...続きを読む

Qエクセルのセルの件、列×行=20cm×20cmに印刷したい

WinXP、EXCEL2003です。
エクセルで、罫線を作成して、列と行の長さをそれぞれ20cmにして、20cm×20cmの正方形を印刷するには、列と行のポイントをどのように設定するといいのでしょうか?計算しても、中途半端な数値になるので、困っています。よろしくお願いします。

Aベストアンサー

Excel定規http://www.geocities.co.jp/SiliconValley-PaloAlto/1200/html/jougi.htm

Excel ミリ単位ものさしマクロhttp://hp.vector.co.jp/authors/VA016119/sizemm.html

などがあります。

Qエクセル 並べ替え 数字の文字列→漢字の文字列→空白セル の順にしたいです。

いつも教えていただきありがとうございます。

【状況】
同じ列に以下のような文字列が並んでいます。

未回答
空白セル
20090208
20090210
未定
空白セル
20090101

【実現したいこと】
この時、
数字昇順(実際には日付)

文字列(未定、未回答)

空白セル
の順に並べ替えをしたいです。

状況補足
・全ての文字列はVLOOKUP関数の結果として表示されています。
・この操作をマクロに組み込むことを考えています。
・空白セルは目立たなければ他の記号などに置き換えても構いません。

上記内容可能でしょうか?
お教えいただけましたら幸いです。
何卒よろしくお願いいたします。

Aベストアンサー

空白セルに目立たない文字として【丶】を代入
文字コードが20518なのでよほど特殊な文字でもデータに入っていない場合はソートすると下の方になるはずです。
(【未】よりは確実に下になります)

あとは普通にソートしても目的の並び替えにはなるので、マクロの記録で。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報