【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

エクセルのオートフィルタ機能について、フィルタの要素を配列を用いて指定、適用させようとしているのですが、うまく適用されません。
古いバージョンだとこれでいけたのですが、現在の環境(表題のとおりExcel2016)だと配列の最終要素のみでフィルタリングされたような状態になってしまいます。私の記述に誤りがあるのか、Excelのバージョンアップに伴って不可になったかが分からず質問する次第です。

プロシージャは以下の通りです。なお、動作範囲はActivesheet(sheets(1))のみです。

Sub Macro1()

Dim trng As Range, frng As Range, i As Long
ReDim mx(0) As Variant

Set frng = Sheets(1).Range("A1").CurrentRegion       '適用範囲
Set trng = frng.Resize(frng.Rows.Count - 1, 1).Offset(1, 0)  'フィルタ対象列
frng.Cells(1, 1).AutoFilter                  '適用前に一度フィルタ解除

For i = 0 To trng.Rows.Count - 1
ReDim Preserve mx(0 To i)
mx(i) = trng.Cells(i + 1, 1)
'Debug.Print "・", mx(i)
Next i

frng.AutoFilter Field:=1, Criteria1:=mx

End Sub

本来はfor文の後ろで配列の要素を要不要に応じて修正してから適用するつもりだったのですが、テストランで上記を実行すると配列の最終要素(上記の場合A列の行の値)のみのフィルタがかかってしまいます。なお、配列に格納しているtrngの値はすべて数値です。

以上、ご教示いただけると助かります。よろしくお願いいたします。

A 回答 (1件)

こんばんは。



コードをみると2つ問題点がありますね。

格納しているのが数値だそうですが、索は文字列ですから、文字列に変えなくてはいけません。
だから、
>mx(i) = trng.Cells(i + 1, 1)
   ↓
mx(i) = CStr(trng.Cells(i + 1, 1))

>frng.AutoFilter Field:=1, Criteria1:=mx
    ↓
rng.AutoFilter Field:=1, Criteria1:=mx, _
Operator:=xlFilterValues ' ←これを加える

これで試してみてください。
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます。お陰様で解決できそうです。
なるほど、つまり配列変数(Variant型)であっても要素に格納する時には文字列に変換しておく必要があるのですね。Excelのバージョンのせいと疑った自分が恥ずかしい…
とても助かりました。どうもありがとうございます。

お礼日時:2019/02/19 11:51

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

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

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

QExcelでフィルターを使わずに抽出するにはどうしたらよいのでしょうか

お世話になります。
画像のようにしたいです。
よろしくお願いいたします。

Aベストアンサー

こんな感じでしょうか(Excelっぽくないけど)。
ちなみに、最初の画像のレイアウトを想定して作っています。列の間隔はご自分で調整してください。

Sub sample()
Dim i As Long
Dim c As Long
Dim r As Long
c = 4
r = 2
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(r, c).Value = Cells(i, "A").Value
Cells(r, c + 1).Value = Cells(i, "B").Value
If Cells(i, "A").Value = Cells(i + 1, "A").Value Then
r = r + 1
Else
c = c + 2
r = 2
End If
Next i
End Sub

こんな感じでしょうか(Excelっぽくないけど)。
ちなみに、最初の画像のレイアウトを想定して作っています。列の間隔はご自分で調整してください。

Sub sample()
Dim i As Long
Dim c As Long
Dim r As Long
c = 4
r = 2
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(r, c).Value = Cells(i, "A").Value
Cells(r, c + 1).Value = Cells(i, "B").Value
If Cells(i, "A").Value = Cells(i + 1, "A").Value Then
r = r + 1
Else...続きを読む

Qエクセル 2016 VBA マクロ 別シートとの照合

Sheet2のA列、E列、G列、H列、I列、K列、M列と
Sheet1のA列、D列、F列、G列、H列、J列、L列を照合して
Sheet2のN列に"削除"と記載があればSheet1の該当行を削除
Sheet2のN列に"削除"以外の記載があれば
Sheet1のM列にSheet2のN列に記載されている文字を反映。

1行目はタイトル行。
最終行は共にA列で判断します。

以上のマクロを教えてください。
宜しくお願い致します。

Aベストアンサー

何度もごめんなさい。

まったく別の方法でやってみました。
配列を使わない方法なので少し時間を要するかもしれませんが、Sheet1が400行程度だというコトなので
そんなに手待ちになるコトはないと思います。

オーソドックスなやり方で、作業用の列を使ってみました。

Sub Sample3()
 Dim i As Long, j As Long
 Dim lastRow As Long, c As Range
 Dim myStr As String, wS As Worksheet, myAry
  Set wS = Worksheets("Sheet2")
   wS.Range("P:P").Insert
    myAry = Array(1, 5, 7, 8, 9, 11, 13)
     For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
      With wS.Cells(i, "P")
       For j = 0 To UBound(myAry)
        .Value = .Value & wS.Cells(i, myAry(j)) & "_"
       Next j
      End With
     Next i
    With Worksheets("Sheet1")
     myAry = Array(1, 4, 6, 7, 8, 10, 12)
     lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
      For i = 2 To lastRow
       For j = 0 To UBound(myAry)
        myStr = myStr & .Cells(i, myAry(j)) & "_"
       Next j
       Set c = wS.Range("P:P").Find(what:=myStr, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
         .Cells(i, "M") = wS.Cells(c.Row, "N")
        End If
       myStr = ""
      Next i
     .Rows(1).AutoFilter field:=13, Criteria1:="削除"
      If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
       Range(.Cells(2, "A"), .Cells(lastRow, "M")).SpecialCells(xlCellTypeVisible).Delete shift:=xlUp
      End If
     .AutoFilterMode = False
    End With
     wS.Range("P:P").Delete
     MsgBox "完了"
End Sub

※ コードの最初と最後に
>Application.ScreenUpdating = False

> Application.ScreenUpdating = True
を付け加えると少しは時間短縮ができるかも・・・m(_ _)m

何度もごめんなさい。

まったく別の方法でやってみました。
配列を使わない方法なので少し時間を要するかもしれませんが、Sheet1が400行程度だというコトなので
そんなに手待ちになるコトはないと思います。

オーソドックスなやり方で、作業用の列を使ってみました。

Sub Sample3()
 Dim i As Long, j As Long
 Dim lastRow As Long, c As Range
 Dim myStr As String, wS As Worksheet, myAry
  Set wS = Worksheets("Sheet2")
   wS.Range("P:P").Insert
    myAry = Array(1, 5, 7, 8, 9, 11, 1...続きを読む

Qエクセルのマクロについて教えて下さい!

これまで手入力で色々集計表を作っていましたが、新しく管理システムが導入され、データベースからデータを抽出できる様になったのですが・・・。データベースからの抽出だけでは楽に集計表を作製することが出来なく、手間が増えてしまいました。
せっかく楽になると思ったのに・・と添付のようなまとめがエクセルのマクロで出来ないか相談させて頂きました!どなたかこのプログラム作製できる方居られましたら御教授御願い致します!!

Aベストアンサー

>1901-002『か』のデータが1812-003『う』のデータに変わっていて、
>1812-003『う』が2個に増えているようです。

ごめんなさい、それだけを抽出して指摘されても、もう直しようがありません。
厳密に言えば、私のプロクラムの問題だと言われれば否定しようもありませんが、論理的なミスだとは思えないのです。今の私としては、画像ではなく生のデータをいただかないと、もう限界ではないかと思っています。

私自身、仕事で人が入力したデータをデータ分析に使ったことはありますが、出力されたものを、そのまま使うこということはできませんでした。一旦、ソートして、それでそれぞれのデータの同じ製品番号の一番上にあるものを元にして、コピーするという作業をします。

例えば、
1:"1901-002"
2:"1901-002"
3:" 1901 -002"

これらは、一緒に見えますが、全部違う製品番号になってしまいます。そこで、修正を加えないと使えないのです。

これらの問題について、ある程度は想定はできますが、「製品番号」のパターンが、純粋に半角の数字と半角ダッシュ(-)で出来ていればよいのですが、スペースが入ったり、ダッシュの違いや、半角空白が混じっていたり、少しでも違えば別だと判断してしまいます。

DataList.Contains(.Cells(i, 1).Value)

今は、このように、そのまま加工せずに代入しています。

それは、実際にどういうデータかにもよりますが、こちらで想定しても、こちらの想定外なことについては、忖度してああではないか、こうではないかと、修正を何度も繰り返してしまうこともありますが、掲示板の回答として、質問者から、余計なことをするなと文句をつけられたり、分かりにくい書き方だから、ボツだとされることが多いのです。

今は、バイナリー比較している関係で、ピッタリ同じでないと正しい結果が得られません。これに対して、テキスト比較という方法はありますが、まだ、試してはいませんが、それは、使えない可能性があるので、DataList.Contains に入れる前に、一定の法則で加工して代入してあげないといけないような気もします。

なんとか、原因に、データ上のブレがないのか、その部分をよく調べていただけたら解決する可能性がありますが、そうでないと、これ以上は、こちらでは無理だと思っています。

>1901-002『か』のデータが1812-003『う』のデータに変わっていて、
>1812-003『う』が2個に増えているようです。

ごめんなさい、それだけを抽出して指摘されても、もう直しようがありません。
厳密に言えば、私のプロクラムの問題だと言われれば否定しようもありませんが、論理的なミスだとは思えないのです。今の私としては、画像ではなく生のデータをいただかないと、もう限界ではないかと思っています。

私自身、仕事で人が入力したデータをデータ分析に使ったことはありますが、出力されたものを、そのま...続きを読む

Q皆様お知恵を拝借させてください 検索用を後ろの数字のみ削除する方法 この下記の条件が成立する方法を教

皆様お知恵を拝借させてください


検索用を後ろの数字のみ削除する方法

この下記の条件が成立する方法を教えてください

検索用1=aaa_bbbbbbb_01
検索用2=aaa_bbbbbbb
検索用1=検索用2

=========================
実験した手法
※以下検索用は1と2両方行っている物とお考えください

検索用=Left(検索用,inStrRev(検索用,"_"-1)
数字は消えるが文字列に数字が無いとガッツリ消える

検索用=Left(検索用,Len(検索用)-3
数字は消えるが結局文字列も消えるので・・・

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

Aベストアンサー

検索用1と検索用2どちらを正(マスタ。検索対象)とするかについてルールがあれば、決定してください。例えば、Len(検索用1)とLen(検索用2)の短い方とか。

ここでは例題のように、検索用2の方が短い前提で、検索用2を正とします。

Left(検索用1,Len(検索用2))とLeft(検索用2,Len(検索用2))
を比較してください。Len関数を一致させているのがポイントです。

QExcelマクロ:オートフィルタ3つ以上の条件

添付の画像を使って質問させて頂きます。
バージョンは2010です。

お客様名 A,B,C,D,E 以外のお客様名を抽出するようにマクロを組みたいのですが

ActiveSheet.Range("$A$1:$D$15").AutoFilter Field:=2, Criteria1:= _
"<"&">&"A", Operator:=xlOr, Criteria2:="<"&">&"B""

の様に考えましたが一つの列に3つ以上の条件では対応できないことが分かりました。

添付の画像は実際使用している表を簡素化しているため
お客様名が少ないですが、実際は多様なお客様名があります。

その中で特定した5社以外のお客様の情報を抽出したいです。

宜しくお願い致します。

Aベストアンサー

>特定した5社以外のお客様の情報を抽出したい

sub macro1()
 dim a
 a = application.transpose(range("B2:B" & range("B65536").end(xlup).row).value)

 a = filter(a, "A", false)
 a = filter(a, "B", false)
 a = filter(a, "C", false)
 a = filter(a, "D", false)
 a = filter(a, "E", false)

 range("A:D").autofilter field:=2, criteria1:=a, operator:=xlfiltervalues
end sub

とかでいいです。

Qエクセルの計算、前年との比較

ひと月を1列として、各商品ごとの重量を入力しています。
1列目1月分、2列目2月分・・・(まだ来てない月は空白)というように。
上司からの指示で、今年の今月まで累計と別シートの前年の同じ月までの累計を比較、比率を出して今年分に表示したいのですが、前年は12月まで入力しており、毎月、計算範囲を変えて、式を入力し直して計算しています。
都度書き換えずに、たとえば関数などで対処できないかと思うのですが、いい方法が浮かびません。
どなたかお知恵をお貸しください。

Aベストアンサー

添付画像のようなこともできますよ。
これは、M1セルに入力した月までの累計をM3に表示するものです。
M3セルに、次の式を設定しています。
=SUM(OFFSET(A3,0,0,1,M1))

Q特定の文字がある行を別シートに張り付けてから削除

こんにちは!excel2007を使用しています。
過去ログから下記の”特定の文字が含まれない行を削除”を発見したのですが
”特定の文字を含む行を削除”に変えるにはどうしたらよいでしょうか?
また、削除する前に別シートにコピーしてから貼り付けたいです。
元が約3万行、A~BC列まであるので出来れば配列で抽出したいです。

①sheet1(2~3万行)からE列に”りんご”とあれば
A~AA列まで、もしくは行ごとでも良いのでsheet2の2行目(A2)以降に貼り付け
②sheet1から①でコピーした行はデリート(①と②はsheet1の5行目から最終行まで行い、最終的にsheet2には"リンゴ"があるリストが作成される)

※可能なら特定の文字はinputboxなどで可変出来るよう複数入力したいです

<<https://detail.chiebukuro.yahoo.co.jp/qa/questio …
Sub Sample3() '特定の文字が含まれない行を削除
Dim varKey As Variant, vA As Variant, rA As Range
Dim i As Long, j As Long, c As Long, f As Boolean
varKey = Array("りんご") 'ここに追加していく
Set rA = Range("E1", Cells(Rows.Count, "E").End(xlUp)) 'データ範囲
vA = rA.Value
For i = 1 To UBound(vA)
f = False
For j = LBound(varKey) To UBound(varKey)
If InStr(vA(i, 1), varKey(j)) > 0 Then f = True: Exit For
Next
If Not f Then vA(i, 1) = Empty: c = c + 1
Next
If c = 0 Then Exit Sub
rA.Value = vA
rA.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

こんにちは!excel2007を使用しています。
過去ログから下記の”特定の文字が含まれない行を削除”を発見したのですが
”特定の文字を含む行を削除”に変えるにはどうしたらよいでしょうか?
また、削除する前に別シートにコピーしてから貼り付けたいです。
元が約3万行、A~BC列まであるので出来れば配列で抽出したいです。

①sheet1(2~3万行)からE列に”りんご”とあれば
A~AA列まで、もしくは行ごとでも良いのでsheet2の2行目(A2)以降に貼り付け
②sheet1から①でコピーした行はデリート(①と②はsheet1の5...続きを読む

Aベストアンサー

No.2です。

どうも失礼しました。
細かい検証をしていませんでした。
おそらく各行セルの文字列をつなぎ合わせるときハイフンでつなぎ合わせていますが、
つなぎ合わせするセル数の始まりと終わりに問題があるのだと思います。
前回のコードに少し手を加えてみました。
どことどこ!と説明しても判りにくいと思いますので、最初からコードを載せておきます。

Sub Sample2()
 Dim myDic1 As Object, myDic2 As Object
 Dim i As Long, j As Long
 Dim lastRow As Long, lastCol As Long
 Dim myStr As String, buf As String, myWord As String, wS As Worksheet '//★//
 Dim myKey1, myKey2, myR, myAry
  Set myDic1 = CreateObject("Scripting.Dictionary")
  Set myDic2 = CreateObject("Scripting.Dictionary")
  Set wS = Worksheets("Sheet2")
   myWord = Application.InputBox("検索文字を入力")
    lastRow = wS.Cells(Rows.Count, "E").End(xlUp).Row
     If lastRow > 1 Then
      lastCol = wS.Cells(1, Columns.Count).End(xlToLeft).Column
       Range(wS.Cells(2, "A"), wS.Cells(lastRow, lastCol)).ClearContents
     End If
    With Worksheets("Sheet1")
     lastRow = .Cells(Rows.Count, "E").End(xlUp).Row
     lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
      myR = Range(.Cells(2, "A"), .Cells(lastRow, lastCol))
       For i = 1 To UBound(myR, 1)
        If myR(i, 5) = myWord Then
         For j = 1 To lastCol
          myStr = myStr & myR(i, j) & "_"
         Next j
          buf = Left(myStr, Len(myStr) - 1) '//★//
          myDic1.Add (buf), "" '//★//
          myStr = ""
        End If
       Next i
      myKey1 = myDic1.keys
       myR = Range(wS.Cells(2, "A"), wS.Cells(UBound(myKey1) + 2, lastCol))
        For i = 0 To UBound(myKey1)
         myAry = Split(myKey1(i), "_")
          For j = 0 To UBound(myAry) '//★//
           myR(i + 1, j + 1) = myAry(j)
          Next j
        Next i
       Range(wS.Cells(2, "A"), wS.Cells(UBound(myKey1) + 2, lastCol)) = myR

       myR = Range(.Cells(2, "A"), .Cells(lastRow, lastCol))
        For i = 1 To UBound(myR, 1)
         For j = 1 To lastCol
          myStr = myStr & myR(i, j) & "_"
         Next j
          buf = Left(myStr, Len(myStr) - 1) '//★//
          If Not myDic1.exists(buf) Then '//★//
           myDic2.Add buf, "" '//★//
          End If
         myStr = ""
        Next i
       Range(.Cells(2, "A"), .Cells(lastRow, lastCol)).ClearContents
      myKey2 = myDic2.keys
       myR = Range(.Cells(2, "A"), .Cells(UBound(myKey2) + 2, lastCol))
        For i = 0 To UBound(myKey2)
         myAry = Split(myKey2(i), "_")
          For j = 0 To UBound(myAry) '//★//
           myR(i + 1, j + 1) = myAry(j)
          Next j
        Next i
       Range(.Cells(2, "A"), .Cells(UBound(myKey2) + 2, lastCol)) = myR
    End With
     Set myDic1 = Nothing
     Set myDic2 = Nothing
     MsgBox "完了"
End Sub

※ 「★」の行が変わっています。m(_ _)m

No.2です。

どうも失礼しました。
細かい検証をしていませんでした。
おそらく各行セルの文字列をつなぎ合わせるときハイフンでつなぎ合わせていますが、
つなぎ合わせするセル数の始まりと終わりに問題があるのだと思います。
前回のコードに少し手を加えてみました。
どことどこ!と説明しても判りにくいと思いますので、最初からコードを載せておきます。

Sub Sample2()
 Dim myDic1 As Object, myDic2 As Object
 Dim i As Long, j As Long
 Dim lastRow As Long, lastCol As Long
 Dim myStr As String...続きを読む

Q検索して文字を

A列に何か文字が入っていたらB列に×を出るようにしたいのですが
B列に入る式を教えて下さい。

Aベストアンサー

例えばB1セルに
=IF(ISBLANK(A1),,"×")
と入れます。
IF関数の条件式がISBLANK関数(対象セルが空欄であればTRUE,値が入っていればFALSE)、TRUEなら何も出力しない、FALSEなら×を出力
です。

QCSVで文字化けしてしまうのを直すマクロ

いつもお世話になっております。
Excel2013を使用していますので
アドバイスどうぞよろしくお願いします。

"ファイル名"というシートのA列2行目からCSVファイルのファイル名が書いてあります。
日によるのですが、だいたい5~10件程度です。
そしてこのCSVファイルがくせ者でファイルを開くと文字化けを起こしてしまいます。下記のサイトを参考にマクロを作ったのですが、文字化けはしないものの文字に必ず""がついてしまい、また一行しか転記されません。

http://officetanaka.net/excel/vba/file/file10.htm

例 空白→""、 神奈川→"神奈川"

やりたいこととしてはファイル名とあるシートのA列2行目に書いてあるCSVファイルを開き、文字化けを直してSheet1にデータを表示させ、それをファイル名が書いてある最終行まで行いたいです。

Sub macro()
Dim i1 As Long, x As Long
Rbook As Workbook
Rsheet As Worksheet, Ssheet As Worksheet
Set Rbook = ThisWorkbook

Sheets("ファイル名").Select
Set Rsheet = Rbook.Worksheets("ファイル名")
For i1 = 2 To 10
If Rsheet.Cells(i1, 1).Value <> "" Then
Sheets("SHEET1").Select ’表示させるシート
Set Ssheet = Rbook.Worksheets("SHEET1")
Ssheet.Cells.Clear
Ssheet.Range("A1").Select

’文字化けを直す
Dim buf As String, Target As String, i1 As Long
Dim tmp As Variant, j As Long
Target = "¥アドレス" & Ssheet.Cells(i, 1).Value
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.LoadFromFile Target
Do Until .EOS
buf = .ReadText(-2)
i = i + 1
tmp = Split(buf, ",")
For j = 0 To UBound(tmp)
Cells(i, j + 1) = tmp(j)
Next j
Loop
.Close
End With

’別のマクロ実行

End if
Next i1

’2行目、3行目と続く

End Sub

どうぞよろしくお願い致します。

いつもお世話になっております。
Excel2013を使用していますので
アドバイスどうぞよろしくお願いします。

"ファイル名"というシートのA列2行目からCSVファイルのファイル名が書いてあります。
日によるのですが、だいたい5~10件程度です。
そしてこのCSVファイルがくせ者でファイルを開くと文字化けを起こしてしまいます。下記のサイトを参考にマクロを作ったのですが、文字化けはしないものの文字に必ず""がついてしまい、また一行しか転記されません。

http://officetanaka.net/excel/vba/file/fil...続きを読む

Aベストアンサー

こんにちは。

>そのあと"buf = .ReadText(-2)"で止まり
>"パラメーターが間違っています"と表示されてしまいます。。。
>アドバイスどうぞよろしくお願いします。

ご指摘の部分は、残念ですが、想定外の問題で、ADODBを使って別のやり方はありますが、そのデータ自体の問題であり、原因は分からないままにコードを変えて何度も繰り返す可能性のほうが高いです。別のファイルでも、2番めに同じように起こりますか?

   Next j
  Loop
  .Close
 End With
 Set Strm = Nothing '←は入れたらどうでしょうか。
End Sub '←ここが最後の行

それと、私は、参照設定で、Adodb を入れていること。(Microsoft ActiveX Data Objects 2.8 Library)
Dim Strm As ADODB.Stream

これらは、あまり関係ないけれども、実際に自分がする時はこうします。もちろん、ご質問者さんが選んだ方法を完動するように書き上げただけですから、この延長上に、同様のエラーがなくなるという可能性は低いのではないかと思います。

今、思いついたのは、Excel 関数のClean 関数を間に入れる方法はあるとは思います。
それは、エラーを起こすと予想されるバイナリコードを除去する働きがあります。ただし、エラーがバイナリコードであれば、という条件です。

しかし、こちら側では、根本的な解決策は見当たりません。が、何度もトライするよりも、ダメだったファイルが、どうしてだめだったか、エディターなどで調べていただいたほうが良いですね。そちらのほうが早いのです。
巨大なファイルではない限りは、文字変換で、UTF-8 から、SJISに変換するツールで、一旦変更してから、インポートするほうが楽だと思います。Vector で、Unix系のツールなどいくつかあるようです。

こんにちは。

>そのあと"buf = .ReadText(-2)"で止まり
>"パラメーターが間違っています"と表示されてしまいます。。。
>アドバイスどうぞよろしくお願いします。

ご指摘の部分は、残念ですが、想定外の問題で、ADODBを使って別のやり方はありますが、そのデータ自体の問題であり、原因は分からないままにコードを変えて何度も繰り返す可能性のほうが高いです。別のファイルでも、2番めに同じように起こりますか?

   Next j
  Loop
  .Close
 End With
 Set Strm = Nothing '←は入れたらどうでし...続きを読む

Q条件付き書式の設定の仕方

別の表にあるセルと同じものがあればセルに色を付けたいのです。

条件付き書式の設定で良いかと思いますが

例えば

=COUNTIF(A1:A11,D2)

この式の

A1:A11

この部分は$A1:$A11 のように絶対値での範囲指定しないとエラーになってしまいます。

この部分のデーターは時々追加などがありますので、$A1 列単位での範囲指定をしたいのですが
できないのでしょうか?

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

Aベストアンサー

>>一からやっていることを整理して書いていただけますか?
と書いたと思うんですが。

A列とB列はそれぞれ文字列で入っているのですか?データ型は同じ?
例示ではどれにも色はつきませんよね?
うまく行かないのは全部ですか?うまくいくデータといかないデータの例は挙げられますか?
条件付き書式にはどのように設定しているのか適用先と条件を書いてもらえますか?
再掲ですが、
>>つまり、見た目空白のセルにも色がついてしまいます
>ここには元々どのようなデータが入っていたのですか?


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

人気Q&Aランキング