VBAでA列がBかつC列がDならE列がFという風なマクロを書きたいです。

Sub tesuto()


If Columns("A").Value = "B" And Columns("C").Value = "D" Then
Columns("E") = F
End If

End Sub

などめちゃくちゃにしか分かりません。
勉強もろくにしていない初心者の不躾な質問で申し訳ありませんが、教えていただけますとうれしいです。

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

A 回答 (1件)

こんにちは!



ループさせるのが一番オーソドックスだと思います。
一例です。

Sub Sample1()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") = "B" And Cells(i, "C") = "D" Then
Cells(i, "F") = "E"
End If
Next i
End Sub

※ 1行目~A列最終行までループさせています。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます!
応用して使うことができました。

お礼日時:2017/04/17 13:05

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

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

Qマクロの整理、正解を教えてください。

マクロを自分で組む知識がないので、マクロの記録で強引に
やりたい操作を実行できるようにしました。
シート2の4行目に空行を挿入してから、
シート1のA3~AK3を、シート2の4行目、シート3,4の3行目に値の貼付けをして、
シート1内の複数のセルを空白にする動作です。

出来上がったマクロを見ると130行以上あったので、
不要な部分や省略できる部分の削除を調べながらやってみますが、
どうしてもエラーが起きます。
エラーが起きても起きなくても、何が良くて何が悪いかわからないので、
初心者向きの正解を教えていただきたいです。
以下に一部省略した130行程を貼付けますのでお願いします!

Sub 登録完了ボタン()
'
' 登録完了ボタン Macro
'

'
Application.ScreenUpdating = False
Sheets("会員情報一覧").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
          ↓2~33まで続く。
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
Range("AL5:DN5").Select
Selection.Copy
Range("AL4").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
          ↓31~1まで続く。
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A6").Select
Sheets("顧客情報入力").Select
Range("A3:AK3").Select
Selection.Copy
Sheets("会員情報一覧").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A4").Select
Sheets("個別情報(閲覧・印刷)").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B7").Select
Sheets("配布(メール送信・印刷)").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B9").Select
Sheets("顧客情報入力").Select
Application.CutCopyMode = False
Range("H6:I7").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=9
Range("C18:C20").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("C24:D24").Select
Selection.ClearContents
Range("C26:F38").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=9
Range("D39:F42").Select
Selection.ClearContents
Range("C39").Select
ActiveCell.FormulaR1C1 = "-"
Range("C40").Select
ActiveCell.FormulaR1C1 = "-"
Range("C41").Select
ActiveCell.FormulaR1C1 = "-"
Range("C42").Select
ActiveCell.FormulaR1C1 = "-"
Range("C43").Select
ActiveCell.FormulaR1C1 = "-"
Range("C44").Select
ActiveWindow.SmallScroll Down:=-36
Range("F14").Select
End Sub

よろしくお願いします。

マクロを自分で組む知識がないので、マクロの記録で強引に
やりたい操作を実行できるようにしました。
シート2の4行目に空行を挿入してから、
シート1のA3~AK3を、シート2の4行目、シート3,4の3行目に値の貼付けをして、
シート1内の複数のセルを空白にする動作です。

出来上がったマクロを見ると130行以上あったので、
不要な部分や省略できる部分の削除を調べながらやってみますが、
どうしてもエラーが起きます。
エラーが起きても起きなくても、何が良くて何が悪いかわからないので、
初心者向...続きを読む

Aベストアンサー

回答者に丸投げする質問じゃないのに好感を感じましたので、またおせっかいさせていただきます。

補足にあった、c42:c46の範囲に"-"を書き込むマクロだと、
「c42:c46の範囲に"-"を書き込む」を5回繰り返しているだけなんです。

Range("c42:c46").FormulaR1C1 = "-"
だけで目的の処理はできちゃってて、無駄に5回繰り返してるのね。

もしForを使うとしたら

For i = 0 To 4
Range("c" & 42 + i) = "-"
Next i

こんな感じ。
For を1じゃなく0からにしてるのは、
41にi(1~5)を足すより、
範囲の最初のセルアドレスの数値42にi(0~4)を足したほうが、
式を理解しやすいと思ったから。
この辺はFor~Next間の処理内容や、好みもありますが。

こういう部分での個性(好み)が出るから、他人の作ったものに手を加えるのが面倒くさかったりします。(笑)

Range("F7").Selectは意図的なセル移動?
マクロ記録のゴミならな消すようにしていきましょう。

前の回答で敢えて書かなかった部分ですが…
複数範囲のクリア部分は、範囲をカンマで続けて書き並べ、一度に処理出来ます。
Range("H6:I7,C18:C20,C24:D24,C26:F38,D39:F42").ClearContents


質問にかかれていたもと、私の回答に書いたものの動作ではエラーはでませんでしたので、
エラーが出た時や、「もっとシンプルな書き方にできないか」と疑問を持たれた時に
再質問されると良いでしょう。

「質問&回答」じゃなく、個人レクチャーみたいになっちゃうので。
がんばってください!

回答者に丸投げする質問じゃないのに好感を感じましたので、またおせっかいさせていただきます。

補足にあった、c42:c46の範囲に"-"を書き込むマクロだと、
「c42:c46の範囲に"-"を書き込む」を5回繰り返しているだけなんです。

Range("c42:c46").FormulaR1C1 = "-"
だけで目的の処理はできちゃってて、無駄に5回繰り返してるのね。

もしForを使うとしたら

For i = 0 To 4
Range("c" & 42 + i) = "-"
Next i

こんな感じ。
For を1じゃなく0からにしてるのは、
41にi(1~5)を足すより、
範囲の最初のセルア...続きを読む

QExcelで関数を使って計算したいです

Excelを使い、A列に数値、B列に◯、×のどちらかを入力します。
B列が◯だった場合のA列の数値を足し算したいのですがやり方が分かりません…
ぜひ教えていただきたいです。
よろしくお願いします。

Aベストアンサー

質問文の確認ですが,B列で○と判定された同じ行のA列の値を全て加算するという事で宜しいですか?
関数は下記の通りです.
=SUMIF(B:B,"○",A:A)

Qエクセルのマクロや関数について、ランダムに抽出する方法を探しています

エクセルのマクロや関数について、ランダムに抽出する方法を探しています。

例えばシート1のA列には
1:かっこいい
2:レザー
3:男性用
4:カラー豊富
5:手帳型
6:シンプル
7:~
と言ったよう文字列があり

同じシート1のB列には
1:かわいい
2:花柄
3:カラー豊富
4:レザー
5:手帳型
6:クロコダイル調
7:~

といったような文字が各セルに入力されているとします。
それぞれの列の1行目はテーマのようになっていて
これをシート2で 「かっこいい」を選択してマクロボタンを押したり関数などで
シート1の文字列からランダムで「かっこいい」の列のワードを3つとか4つピックアップして
シート2でかっこいいを選択した横のセルなどに表示させたいのです。

とても分かりにくくて申し訳無いのですが、
テーマに沿ったキーワードが大量にあり、
別シートにてテーマを選択するとそのテーマに沿ったキーワードが複数ピックアップされるような仕組みを模索しています。


もしお分かりになる方、なにかヒント的なものでも思いついた方がいればお教えいただければと思います。何卒よろしくお願いいたします。

エクセルのマクロや関数について、ランダムに抽出する方法を探しています。

例えばシート1のA列には
1:かっこいい
2:レザー
3:男性用
4:カラー豊富
5:手帳型
6:シンプル
7:~
と言ったよう文字列があり

同じシート1のB列には
1:かわいい
2:花柄
3:カラー豊富
4:レザー
5:手帳型
6:クロコダイル調
7:~

といったような文字が各セルに入力されているとします。
それぞれの列の1行目はテーマのようになっていて
これをシート2で 「かっこいい」を選択してマクロボタンを...続きを読む

Aベストアンサー

> 各列にどんどん無限に足されていくので
Excelの列数自体が有限ですから 無限に増えることはありません。
あまり条件を無駄に広げるのは良くないと思います。

Sub Macro1()
Dim xKey As String, i As Long, tf As Boolean
Dim xRng As Range, yRng As Range, y As Range
Dim lr As Long, lc As Long, ac As Long
Dim xStr As String
Const xCnt As Integer = 3 '抽出数

With ThisWorkbook.Worksheets("Sheet2")
xKey = .Range("A1").Value
Set yRng = .Range("B1").Resize(, xCnt)
End With

With ThisWorkbook.Worksheets("Sheet1")
lc = .Cells(1, .Columns.Count).End(xlToLeft).Column
tf = False
For i = 1 To lc
If .Cells(1, i).Value = xKey Then
tf = True
ac = i
Exit For
End If
Next i
If tf = False Then
MsgBox "該当するキーワードがありません。", vbCritical
Exit Sub
End If
lr = .Cells(.Rows.Count, ac).End(xlUp).Row
If lr - 1 <= xCnt Then
MsgBox "候補が規定数未満です", vbCritical
Exit Sub
End If
Set xRng = .Range(.Cells(2, ac), .Cells(lr, ac))
End With

For Each y In yRng
Do
y = xRng(WorksheetFunction.RandBetween(1, lr))
Loop Until WorksheetFunction.CountIf(yRng, y) = 1
Next y
Set xRng = Nothing: Set yRng = Nothing
End Sub

> 各列にどんどん無限に足されていくので
Excelの列数自体が有限ですから 無限に増えることはありません。
あまり条件を無駄に広げるのは良くないと思います。

Sub Macro1()
Dim xKey As String, i As Long, tf As Boolean
Dim xRng As Range, yRng As Range, y As Range
Dim lr As Long, lc As Long, ac As Long
Dim xStr As String
Const xCnt As Integer = 3 '抽出数

With ThisWorkbook.Worksheets("Sheet2")
xKey = .Range("A1").Value
Set yRng = .Range("B1").Resize(, xCnt)
End W...続きを読む

Qエクセルの計算式

エクセルが次のようになっています。

A列  B列  C列  D列  E列 F列  G列
1000     伺1712345    計算式


A列に1000、D列に伺1712345 と記載されており

G列には次の式が入っており、E1D72345と表示されます。

=IF(D11="","",IF(A11="","",IF(A11="2950","I",IF(A11>"2999","F",IF(A11>"1999","D","E")))&IF(E11="0","2","1")&
IF(LEFT(D11,1)="伺",IF(A11>"3044","K",IF(A11>"2999","I",IF(A11>"1999","G",IF(LEFT(D11,3)="伺ek","E","D")))),
IF(A11>"3044","J",IF(A11>"2949","H",IF(A11>"1999","F",IF(LEFT(D11,2)="ek","C","B")))))&IF(AND(LEFT(D11,1)
="伺",A11<"3000"),LEFT(RIGHT(D11,6),1)&RIGHT(D11,4),RIGHT(D11,5))))

この式をD列の下5桁が埋まっている場合はE1D72345をE1Z72345(DをZに変える)にしたいのですが式をどのように変更すればよいでしょうか。

要は以下のようにしたいのです。

D列が伺1702345の場合はG列はE1D71345となる(現状の式でOK)

D列が伺1712345の場合はG列はE1Z71345となる(現状の式を変更しなければならない)


宜しくお願いします。

エクセルが次のようになっています。

A列  B列  C列  D列  E列 F列  G列
1000     伺1712345    計算式


A列に1000、D列に伺1712345 と記載されており

G列には次の式が入っており、E1D72345と表示されます。

=IF(D11="","",IF(A11="","",IF(A11="2950","I",IF(A11>"2999","F",IF(A11>"1999","D","E")))&IF(E11="0","2","1")&
IF(LEFT(D11,1)="伺",IF(A11>"3044","K",IF(A11>"2999","I",IF(A11>"1999","G",IF(LEFT(D11,3)="伺ek","E","D")))),
IF(A11>...続きを読む

Aベストアンサー

長さの問題ではないですね。
IF(IF(IF(IF(…という形で、関数の中に関数の中に関数…というのが、限界の数になったようです。
(中に入れる形を取らなければ、長さはもっと長くなっても問題ないです)
であるならば、中身を分解して書き直さないといけませんね。

今回IF(LEFT(RIGHT(D11,5),1)="0","D","Z")を増やしたので、最高でも3つ減らせれば問題なく動くかと。
一番手っ取り早いのは、隣のセルにでも
=IF(LEFT(RIGHT(D11,5),1)="0","D","Z")
と入力し、これを加えた部分(元の"D"の部分)にそのセルのセル番地(A1など)を入力することですね。
条件に該当する場合のみ、そのセルに表示されたデータ("D"or"Z")を参照し、条件に該当しない場合はそのセルに何が表示されていても関係ない。ことになります。

QExcelのセルの書式設定で質問です。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググってユーザー定義から Ctrl+J でセル内の各行に定義を設定するという方法を知りました。
手探りで1行目の価格に#,##を、残りのJANコード行に標準/Gを設定してみましたが出来ません。
試しにJANコード部を#############にしてみましたが桁区切り点は付きません。
今は一つ一つクリックして手動で付けています。
どのようなユーザー定義を設定すれば可能でしょうか?
またJANコード数は価格(商品)によって違います。
最大数のユーザー定義を設定して貼り付ければすべてのセルに設定できるでしょうか?
例えば20行分の書式設定をしたものを1行しかコードがないセルに貼り付けても問題ないでしょうか?
ご教授お願いします。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググっ...続きを読む

Aベストアンサー

前回の質問を見ていないので,どの様にして1つのセルに改行して数値(属性としては文字)を入れたか分かりませんが,おそらく書式設定ではなく,データを入れる部分を直さないといけないと思います.多分,
=A1&CHAR(10)&A2
みたいな関数で折り返し表示しているのだと思いますが,これを以下の関数にするとカンマが付きます.
=TEXT(A1,"#,###")&CHAR(10)&TEXT(A2,"#,###")

QEXCELの罫線について

EXCELにて罫線を引いているのですが、セル毎に横罫線が切れた罫線を引く方法をご存じの方が居られましたら、方法をご教授下さい。(応用で縦にも対応できればよりありがたいです)
私個人の好みだと思うのですが、こういった引き方をしたい場合があるので。

よろしくお願いいたします。

Aベストアンサー

範囲選択して、[セルの書式設定]→[罫線]タブで横罫線を細い実線に
して色を青などの判りやすい色にしておきます。
縦罫線を指定するときに白色の一番太い実線にします。

これで、縦罫線の白色で横線が切れたように見せることができます。

QVBAで作成する勤務表の合計を求めるセルの月によるズレに対応したプログラムについて

3月2日に「VBAでのシフト表の何日~何日までの求め方」を投稿した者です。
シフト表を作成した際にAJのセルに合計数値が求められるのですが月の28、30、31日に合わせ、その合計セルがずれる様になるVBAプログラムを作成したいのですが可能なのでしょうか?

例えばカレンダーはDセルから始まり、2月は15日がAFまでのセルとします。その横のAGのセルに合計値を。
4月は15日がAHまでであり、AIに合計値を。
5月はこの15日がAIまでであり、このご質問通りAJセルで合計値が出力されます。
その月に合わせ合計値のセルが動いてくれると嬉しいものと思ったのでご質問させていただきました。

私のご説明が分かりずらいかと思いますがよろしくお願い致します。

Aベストアンサー

前回提示したPublic Sub カレンダー作成()のプロシージャを以下のマクロで置き換えてください。
----------------------------------------------------
Public Sub カレンダー作成()
Dim sh0 As Worksheet '設定シート
Dim sh1 As Worksheet 'シフト表シート
Dim s_date As Date '開始日
Dim e_date As Date '終了日
Dim col As Long '列
Dim wkday As Long '曜日(1:日~7:土)
Dim wdate As Date
Dim i As Long
Dim maxrow0 As Long
Dim maxrow1 As Long
Dim row0 As Long
Dim color As Long '日付・曜日の背景色
Set sh0 = Worksheets("設定")
Set sh1 = Worksheets("シフト表")
'開始日取得
s_date = sh0.Cells(2, "A").Value
'終了日計算
e_date = DateAdd("m", 1, s_date) - 1
maxrow0 = sh0.Cells(Rows.Count, "B").End(xlUp).row '設定 B列の最大行取得
maxrow1 = sh1.Cells(Rows.Count, "C").End(xlUp).row 'シフト表 C列の最大行取得
'カレンダークリア
sh1.Range("D3:AH3").NumberFormatLocal = "d" '書式設定
sh1.Range("D2:AK" & maxrow1 + 1).Value = "" '祝日名/日/曜日
sh1.Range("D3:AH" & maxrow1 + 1).Interior.Pattern = xlNone '日/曜日の背景色
sh1.Range("AJ5:AJ" & maxrow1).Value = "" 'AJの勤務日数合計
sh1.Range("AG5:AK" & maxrow1).Borders.LineStyle = xlLineStyleNone '罫線クリア
sh1.Cells(3, e_date - s_date + 6).Value = "チェック欄"
sh1.Cells(3, e_date - s_date + 7).Value = "合計"
'罫線
sh1.Range(sh1.Cells(5, e_date - s_date + 6), sh1.Cells(maxrow1, e_date - s_date + 7)).Borders.LineStyle = True
'カレンダー作成
For i = 0 To (e_date - s_date)
col = 4 + i
wdate = s_date + i
wkday = Weekday(wdate)
sh1.Cells(3, col).Value = wdate '日付
sh1.Cells(4, col).Value = WeekdayName(wkday, True) '曜日
'土曜日は水色、日曜日は赤色、祝日には黄色を背景に設定する
'休日判定(祝日と土日が重なった場合は祝日優先)
color = -1
row0 = IsHoliday(wdate, sh0, maxrow0)
If row0 > 0 Then
'祝日の場合
color = 65535 '黄色
sh1.Cells(2, col).Value = sh0.Cells(row0, "C").Value '祝日名
Else
If wkday = 1 Then color = 255 '赤
If wkday = 7 Then color = 15773696 '水色
End If
If color <> -1 Then
sh1.Cells(3, col).Interior.color = color
sh1.Cells(4, col).Interior.color = color
End If
Next
MsgBox ("完了")
End Sub
----------------------------------------------

前回提示したPublic Sub カレンダー作成()のプロシージャを以下のマクロで置き換えてください。
----------------------------------------------------
Public Sub カレンダー作成()
Dim sh0 As Worksheet '設定シート
Dim sh1 As Worksheet 'シフト表シート
Dim s_date As Date '開始日
Dim e_date As Date '終了日
Dim col As Long '列
Dim wkday As Long '曜日(1:日~7:土)
Dim wdate As Date
Dim i As Long
Dim maxrow0 As Long
Di...続きを読む

Qエクセルについて質問です

仕事で仕入先からの交渉データを作成していて見やすいように
追加しようと考えていますが一部分からないところがあります。

■現状
シート1(件名一覧表)
シート2(交渉内訳)

■追加シート3(個別件名の確認用シート)

やりたいことはシート2(交渉内訳)に
C列に注文番号のコード
D列にメーカーコード
E列に仕入先名
F列にメーカーごとの定価金額
H列に担当者が交渉したメーカーごとの原価金額
K列に私が交渉したメーカーごとの原価金額
があります。
C列の注文番号を入力すれば
個別件名シートで見れるように

上記データを元に
追加シート3(個別件名の確認用シート)に
交渉内訳シートのC列、D列、E列、F列、H列、K列が
反映されるようにしたいです。

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)と
入力すると全てが同一仕入先になってしまい
各仕入先が表示されません。

なかなか文章で説明が難しく詳細もコンプライアンス上なかなか
表示出来ませんので答えにくいかも

Aベストアンサー

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索しているのに、B列には注文番号が入っているのですか?
それでしたら、一致するものがない為、近似として扱われたデータが表示されているのかもしれません。
完全一致で検索するとして、VLOOKUPの最後の0(TRUE扱い)を1(個人的には1よりFALSEと書く方が見た時わかりやすいので推奨)にしてみてください。
VLOOKUPの場合、近似よりも完全一致で検索する場合の方が多いと思いますし、それだと検索範囲を昇順に並べ替える必要もなくなります。

>注文番号を入力すれば個別件名シートで見れるように
7~2049行にデータがあるとして、
=VLOOKUP($AA2,交渉内訳!$B$7:$K$2049,2,FALSE)
AA2は検索したい注文番号の入力されたセルの事です。該当するセルに変更してください。
B列の1~6行目に注文番号と重複するデータが確実にないのであれば、
=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
とした方が良いです。(データが増えても範囲を変更せずに済むので。

とりあえず、これはB列を1列目として2列目=C列のデータを表示させる式です。
C列は結局何が入っているのかわかりませんが、とりあえずC列、D列、E列、F列、H列、K列を表示させる式を書きますね。

C列:=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
D列:=VLOOKUP($AA2,交渉内訳!$B:$K,3,FALSE)
E列:=VLOOKUP($AA2,交渉内訳!$B:$K,4,FALSE)
F列:=VLOOKUP($AA2,交渉内訳!$B:$K,5,FALSE)
H列:=VLOOKUP($AA2,交渉内訳!$B:$K,7,FALSE)
K列:=VLOOKUP($AA2,交渉内訳!$B:$K,10,FALSE)
となります。
元の表とシートの様式を同じにしていれば、
B列に注文番号のコードを入力するとして、
C2=VLOOKUP($B2,交渉内訳!$B:$K,COLUMN()-1,FALSE)
これをコピーするだけで済みます。
G,I,J列が不要であれば非表示にすればいいのです。1列1列何列目を抽出するかを数える必要はなくなります。

文章だけで間違いも含め可能な限り読み砕いたつもりです。参考まで

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索...続きを読む

Qエクセル検索結果されたら、参照しているセルにジャンプする方法

マトリックス表の検索表を作成しています。
写真のように、B1に「う」、B2に「う」と入力すると、B3に高橋が表示されるようにしました。

B3に結果として高橋が表示されていますが、それと同時にF6にカーソルがジャンプする方法が知りたいです。

今は、数少ない表ですが今後多くなると見にくくなるため、どなたか教えてください。

Aベストアンサー

No.3・4・5です。

>このB3のセルをダブルクリックすると、B3にもともと入力されている関数が編集できるような状態となりますので・・・

ん?MAC版のExcelでは編集可能になりますか?
コード内に
>Cancel = True
と記載しているので、こちらのWindows版のExcelでは編集可能にはなりません。
もちろんB3セルを選択した状態では数式バー内で編集は可能ですが・・・

※ No.4のコードは試されたのでしょうか?m(_ _)m

Q助けてください!〜特定の文字を含むセルの文字列を抽出する方法

関数初心です。
画像のように、例えば★を含むセルの文字全てを抽出する方法をどなたかご教示いただけませんでしょうか?
もう少し詳しくいうと、A列で★を含むセルの文字である「★バナナ」と「★レモン」を抽出する、という場合です。
どうぞ、よろしくお願いいたします。

Aベストアンサー

B2 に以下を入れます(配列数式なのでCtrl+Shift+Enterで入力)
=IFERROR(INDEX($A$2:$A$7,SMALL(IF(LEFT($A$2:$A$7,1)="★",ROW($A$2:$A$7),10000),ROW(A2)-1)-1),"")

あとは下へ向けてフィルドラッグです。


人気Q&Aランキング